A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

---------------------- <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>、期待与您交流! ----------------------

1 个回复

倒序浏览
分析的不错,还有一种方式也是可以实现单例模式的。就是使用枚举。如果枚举类中只有一个成员,那么这个类也是单例的。因为枚举类中的构造方法都是私有的。而且枚举类中的每一个成员都是枚举类的一个实例对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马