作者:俣宸爸555_872_923 | 来源:互联网 | 2013-09-13 09:11
类的设计模式之单例模式:
类的设计模式:我们的类应该如何写。
单例模式:一个对象。一个类的实例。
如何能够保证一个类只能实例化一个对象。在整个脚本周期内,只能有一个类的实例存在。
我们如何写这个类,才能保证一个对象存在。
单例模式可以干啥呢?
如果某个类的对象,只需要一个的话,就可以完成所有的功能,那么我们就可以将这个类设计成单例模式。从而保证这个类能且只能实例化一个对象。
例如 数据库操作类,有一个对象 就完全够了。
如果需要将类设计成单例模式,需要解决几个问题:
1 怎么能保证类只能实例化一个对象
2 如果生成了一个新对象,如何保证这个对象不能被克隆
步骤:
1 先禁止 用户无限制的 使用 new 获得新对象。
构造方法私有化
这么做的结果,是类不能在类外被实例化,而不是 不能被实例化。
2 这样 只能在类的内部实例化对象。需要在类内执行new。
在类内定义一个静态方法,这个方法内实例化 new
这样 就可以通过类去调用这个方法从而获得新对象。
但是这么做,用户可以通过无限次地调用 getInstance()来获得很多对象。
但是 现在用户如果需要获得新对象,都必须通过getInstance()方法来实现,因此我们可以想法在 getInstance()中做操作,保证单例。
3 修getInstance()
如果用户第一次调用这个方法,则应该实例化一个新对象。
如果不是第一次调用这个方法,则说明对象已经存在,不需要在实例化,将已经实例化好的对象返回。
在类内 增加一个静态属性,用来保存实例化的对象,通过判断这个对象是否存在,就可以知道是第几次掉用这个方法:
4, 进制克隆的形式获得对象即可:
单例模式设计方法: 三私一公。