您的位置:首页 > 其它

单利模式与缓存功能的实现

2005-07-23 15:40 211 查看
在《设计模式》一书中,作者这样来叙述单例模式的:确保一个类只有一个实例并提供一个对它的全局访问指针。
为了确保全局只有一个实例,所有访问这个类的实例的指针的地址保证相同,必须满足下面的几个条件:

私有的构造函数;

自行创建这个事例;

静态的实例化方法提供全局唯一实例。
在单例模式中又可以分为饿汉式单利模式和懒汉式单例模式。所谓饿汉式单例模式就是在类被访问时这个唯一的实例便被创建,而不管他是否会被使用;而懒汉式单例模式在类被加载的时候不会被实例化,只有第一次使用静态实例化方法访问的时候才会被实例化。
从理论上分析饿汉式单例模式实现简单,但却会在一定程度上降低运行效率,而懒汉式单例模式虽然不会有运行效率的问题,实现方法却有些复杂。下面是这两种单例模式的代码示例:

饿汉式单例模式

public class EagerSingleton
public class LazySingleton

public class LazySingleton

关于单例模式详细内容可以参考如下内容:
http://xxol.net/Edu/Development/Java/0541312241282488.htm
http://xxol.net/Edu/Development/Java/0541312240656996.htm
http://xxol.net/Edu/Development/Java/0541312240591257.htm
http://xxol.net/Edu/Development/Java/0541312235356276.htm

登记式多例模式是在单例模式的基础上延伸出来的,利用关键字来获取全局唯一对象实例。因此简单的缓存功能的实现也可以借助这种方法来实现,不同的是对象的实例化不是由缓存容器来实现,而是由缓存容器之外的方法去创建,然后跟据关键字从缓存容器获取这一实例,或者根据关键字来修改和删除这个实例。由此可见缓存器的功能要比登记时多例模式的功能更加灵活,而不会仅仅局限在对象实例的访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: