Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7630100 建立时间:2006年5月29日 |

| |
[设计模式]Java中的模式 --- 双重接口的实现,备忘录模式 软件技术
lhwork 发表于 2006/12/19 9:56:41 |
一、定义:备忘录(memento)模式又叫快照(snapshot)模式或者token模式,主要功能: 备忘录模式是用一个对象来存储另外一个对象的内部状态的快照,实现备忘录模式的关键点是在不破坏封装的 情况下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在合适的时候,把这个对象还原。 说明:备忘录模式适模式中比较好理解的一个,这里就不举例子,但是备忘录模式是模式中实现比较难,或者说 实现比较巧的,这里主要说说。 二、备忘录模式的实现 1,备忘录模式中的角色 发起人:创建含有内部状态的备忘录对象,并使用备忘录对象存储状态 负责人:负责人保存备忘录对象,但不检查备忘录对象的内容 备忘录:备忘录对象将发起人对象的内部状态存起来,并保正其内容不被发起人对象之外的对象像读取 注意:在备忘录的角色中,定义了他必须对不同的人提供不同的接口,对发起人提供宽接口,对其它任何人提供窄 接口。也许你说我都提供宽接口得了。对这也是备忘录的一种实现,叫做白箱备忘录,不过这种方法的封装没有设计 好,安全性不够好。 2 |
|
[设计模式]重载overloading和覆写overriding哪个更早执行-- visitor帮助篇 软件技术
lhwork 发表于 2006/12/19 9:41:50 |
重载overloading和覆写overriding哪个更早执行-- visitor帮助篇 一:问题提出 虽然我们经常写程序用到重载和覆写,但是很少会考虑他们的执行顺序。下边的内容就是关于,他们同时出现时 哪个先起作用: 二:问题分析 Java是"动态单分派静态多分派语言",这个定义已经多次提起,如果你不了解这些概念,看这里"visitor模式准备" 所以就注定了重载(静态多分派)要早于覆写(动态单分派),因为静态分派是编绎期实现的,动态分派是执行期实现的。 三:验证 简单验证一下,顺变提高记忆
1 |
|
[设计模式]Java中的模式 --工厂模式 软件技术
lhwork 发表于 2006/12/19 9:36:28 |
工厂模式主要负责将大量有共通接口的类实例化,工场模式有以下几种形态 简单工厂(Simple Factory) 又称 静态工厂方法(Static Factory Method) 工厂方法(Factory Method) 又称 多态性工厂(Polymorphic Factory) 抽象工厂(Abstract Factory) 又称 工具箱(Kit or Toolkit)
先说简单工厂模式: 需求:一个水果工厂,为任何来的客人提供水果,现有水果Apple ,Banana,Orange 实现: 定义三个类Apple,Banana,Orange 让他们都实现Fruit接口
|
|
[设计模式]Java中的模式 --单态 (部分翻译 double-checked locking break) 软件技术
lhwork 发表于 2006/12/19 9:33:42 |
单态定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了 实例的个数,有利于Java垃圾回收(garbage collection)。
使用Singleton注意事项: 有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类 装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的
单态模式的演化: 单态模式是个简单的模式,但是这个简单的模式也有很多复杂的东西。
一,首先最简单的单态模式,单态模式1 import java.util.*; class Singleton { private static Singleton instance; privat |
|
[设计模式]简单整理一下调用接口和被调用接口的方法 软件技术
lhwork 发表于 2006/9/18 9:54:32 |
我们公司是做通信行业的,所以调用接口和被调接口是经常的事,所以把这方面的东西总结一下,以便自己和大家一起温习一下: 做接口这个我们这边做的比较简单,调用别人的接口主要是调用Servlet或者Action、JSP,我们这边有可能是JAVA APPLICATION 也可能是WEB程序, 参数主要是XML格式的字符串。下面看一下,调用别人接口的时候用法。
URL url = new URL ("别人提供的URL地址"); URLConnection connection = url.openConnection(); connection.connect(); StringBuffer XmlParam =new StringBuffer(); XmlParam.append("<?xml version='1.0'?>\n"); XmlParam.append("<Love>\n"); XmlP |
|
[设计模式]单例模式陷阱 软件技术
lhwork 发表于 2006/8/26 13:05:02 |
今天去jdon,看了它的设计研究栏目,bang有几篇评论单例模式的文章,声称“Singleton is evil”(见http://www.jdon.com/jive/article.jsp?forum=91&thread=17578),并且引用几篇外文页面佐证自己的观点,其中有一篇文章更是说,单例不仅不是一种模式,而是一种反模式。 下面我谈谈我对单例模式的看法。逐一分析单例模式的陷阱,帮助大家正确使用单例模式。 (1) 陷阱一:调用函数的性能瓶颈 在c++中,单例只有一种实现 |
|
|