首页 > 学院 > 开发设计 > 正文

设计模式一:单例模式

2019-11-09 16:51:27
字体:
来源:转载
供稿:网友

单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。

四点要求:唯一实例,多线程并发访问,效率性能,懒加载(Lazy Load,在需要的时候才被构造) 1、懒汉模式,线程不安全

public class SingletonKerriganA { /** * 单例对象实例 */ PRivate static SingletonKerriganA instance = null; public static SingletonKerriganA getInstance() { if (instance == null) { instance = new SingletonKerriganA(); } return instance; }}

2、懒汉模式,线程安全,但是效率低

public class SingletonKerriganB { /** * 单例对象实例 */ private static SingletonKerriganB instance = null; public synchronized static SingletonKerriganB getInstance() { if (instance == null) { instance = new SingletonKerriganB(); } return instance; }}

3、饿汉模式

public class SingletonKerriganE { /** * 单例对象实例 */ private static SingletonKerriganE instance = new SingletonKerriganE(); public static SingletonKerriganE getInstance() { return instance; }}

4、静态内部类。懒汉模式,线程安全,性能好,应用多。

public class SingletonKerriganF { private static class SingletonHolder { /** * 单例对象实例 */ static final SingletonKerriganF INSTANCE = new SingletonKerriganF(); } public static SingletonKerriganF getInstance() { return SingletonHolder.INSTANCE; }}

实际开发中,我们应该记住:没有最好的单例模式,只有最合适的单例模式。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表