黑马程序员技术交流社区

标题: 黑马程序员 单例设计模式小结!! [打印本页]

作者: 北极雪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