黑马程序员技术交流社区
标题:
黑马程序员 单例设计模式小结!!
[打印本页]
作者:
北极雪871208
时间:
2014-3-27 13:29
标题:
黑马程序员 单例设计模式小结!!
---------------------- <a target="blank">ASP.Net+Unity开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
所谓单子模式就是在整个应用过程中只向外界提供唯一的一份实例,也就是说在应用时只有一个实例,这样也就不用反反复复的创建实例了。那么根据他的要求,看下面一个最简单的单例模式的代码:
[java] view plaincopyprint?
public class Singleton {
private static Singleton single = new Singleton();
private Singleton(){
}
public static Singleton getSingletonInstance(){
return single;
}
}
通过这段代码,我们发现要想实现这个Singleton类的实例,就必须要通过构造函数,但是他的构造函数是private的,所以无法在别的类中实现他的实例化,但是可以通过getSingletonInstance方法,能返回一个实例single,因为他是public的静态函数,可以被别的类调用。这就是一个简单单例模式。当然也可以把构造single的语句放在getSingletonInstance方法中去实现。
总结一下单例模式的特点:
1. 构造方法是private修饰的。
2. 有一个private的静态应用实例。
3. 有一个静态的public的方法返回该类的实例。
其实这三个特点完全是由于单例模式的要求所决定的。
---------------------- <a target="blank">ASP.Net+Unity开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
作者:
syusikoku
时间:
2014-3-27 16:39
分析的不错,还有一种方式也是可以实现单例模式的。就是使用枚举。如果枚举类中只有一个成员,那么这个类也是单例的。因为枚举类中的构造方法都是私有的。而且枚举类中的每一个成员都是枚举类的一个实例对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2