从Java类库看设计模式(2) - 编程入门网
以不用管 它,但是如果Singleton继承于一个其他的类,而这个类又有重载clone()方法,这时就需要 在Singleton中再重载clone()方法,并在其中抛出CloneNotSupportedException,这样就可 以避免多个Singleton的实例被创建了。
在JDK1.2以前的版本中使用Singleton模式的时候有一些需要额外注意的地方,因为 Singleton类并没有被任何其他的对象所引用,所以这个类在创建后一段时间会被unload, Singleton类的静态方法就会出现问题,这是由于Java中垃圾收集机制造成的。解决的方法也 很容易,只需要为其创建一个引用就行了。而在JDK1.2以后的版本中,Sun重新定义了Java规 范,改正了其垃圾收集机制中的一些问题,这个问题也就不复存在了,这儿指出只是为了提 起大家的主意。 小结: Command模式用来封装请求,也描叙了一致性的发送请求的接口,允许你配置客户端以处 理不同的请求,为程序增添了更大的灵活性。Singleton模式为提供对象的单一入口提供了帮 助。AbstractFactory和FactoryMethod模式在功能上比较类似,都是用来处理对象的创建的 ,但应用在不同的层面上。在创建型模式中,还有Builder模式和Prototype模式,这儿不打 算详细的讨论了,简单的说,Builder模式用来处理对象创建的细节。在两个工厂模式中都没 有涉及到对象创建的具体细节,都是通过接口来返回一个给定类型的对象。而Builder模式则 需要对创建一个给定类型对象的过程进行建模。这对创建复杂对象时很有用,使得创建对象 的算法独立于对象各个组成部分的创建。而Prototype模式使用原型机制,通过创建简单原型 的拷贝来创建对象。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |