`

Head First 设计模式之单件模式之总结

阅读更多

单件模式要点:
      1.单件模式确保程序中一个类最多只有一个实例
      2.单件模式也提供访问这个实力的全局点
      3.在java中实现单件模式需要私有的构造器、一个静态方法和一个静态变量
      4.确定在性能和资源上的限制,然后小心地选择适当的方案来实现单件,一解决多线程的问题(我们必须认定所有的程序都是多线程的)
      5.如果不是采用第五版的java 2 ,双重检查加锁实现会失效
      6.小心,你如果使用多个加载器,可能导致单件失效而产生多个实例
      7.如果使用JVM 1.2 或之前的版本,你必须建立单件注册表,一面垃圾收集器将单件回收

 

单件模式:确保一个类只有一个实例,并提供一个全局访问点

public class Singleton{
           private static Singleton uniqueInstance;//一个静态变量
       private Singleton(){}//私有构造器
       public static Singleton getInstance(){//一个静态方法
             if(uniqueInstance == null){
                                uniqueInstance = new Singleton();
                    }
                   return uniqueInstance;
           }
}

 

单件模式在多线程中利用上述代码,存在创建不止一个实例,解决方案有3种:

 

分享到:
评论

相关推荐

    [创建型模式] head first 设计模式之单件模式(Singleton)

    Head First 设计模式是一本非常受欢迎的设计模式书籍,通过直观易懂的方式讲解了23种设计模式,包括单例模式在内的创建型、结构型和行为型模式。阅读这本书籍可以帮助开发者更好地理解和运用设计模式,提高代码质量...

    Head First(Design Patterns) 设计模式英文原版

     1设计模式入门欢迎来到设计模式世界  2观察者模式让你的对象知悉现况  3装饰者模式装饰对象  4工厂模式烘烤OO的精华  5单件模式独一无二的对象  6命令模式封装调用  7适配器模式与外观模式随遇...

    Head First 设计模式 (五) 单件模式(Singleton pattern) C++实现

    单件模式(Singleton pattern)是设计模式中的一种结构型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于系统中需要频繁创建和销毁的对象,如日志服务、线程池或者数据库连接等...

    Head First 设计模式 中文版

    Head First设计模式 第五章单件模式

    head first 设计模式

    1 设计模式入门 欢迎来到设计模式世界 2 观察者模式 让你的对象知悉现况 3 装饰者模式 装饰对象 4 工厂模式 烘烤OO的精华 5 单件模式 独一无二的对象 6 命令模式 封装调用 7 适配器模式与外观模式 随遇模式 8 模板...

    Head First设计模式 中文 高清

    1 设计模式入门 欢迎来到设计模式世界 2 观察者模式 让你的对象知悉现况 3 装饰者模式 装饰对象 4 工厂模式 烘烤OO的精华 5 单件模式 独一无二的对象 6 命令模式 封装调用 7 适配器模式与外观模式 随遇模式 8 模板...

    深入浅出设计模式之单件模式

    根据给定的信息,《Head First 设计模式》这本书将单件模式(也称为单例或单态模式)作为其中的一个重点章节进行讲解。单件模式是一种常用的创建型设计模式,其目的是控制类的实例化过程,确保在整个应用程序中,一...

    Head.First设计模式_PDF.part1

    Head.First设计模式_PDF(高清扫描版) 第一部分(共三部分) 在我的资源下可找到其他两部部分 强大的写作阵容。《Head First设计模式》作者Eric Freeman和ElElisabeth Freeman是作家、讲师和技术顾问。Eric拥有耶鲁...

    Head.First.设计模式.中文版 1-8章

    Head.First.设计模式.中文版 1 欢迎来到设计模式世界:设计模式入门  模拟鸭子应用  Joe想到继承  利用接口如何?  软件开发的不变真理  分开变化和不变部分  设计鸭子的行为  测试鸭子的代码  动态地设置...

    Head First Design Pattern(en) pdf(part1)

    1 欢迎来到设计模式世界:设计模式入门  模拟鸭子应用  Joe想到继承  利用接口如何?  软件开发的不变真理  分开变化和不变部分  设计鸭子的行为  测试鸭子的代码  动态地设置行为  封装行为的大局观  ...

    Head First Design Pattern(en) pdf(part3)

    1 欢迎来到设计模式世界:设计模式入门  模拟鸭子应用  Joe想到继承  利用接口如何?  软件开发的不变真理  分开变化和不变部分  设计鸭子的行为  测试鸭子的代码  动态地设置行为  封装行为的大局观  ...

    设计模式-C # 经典设计模式

    本文将围绕《设计模式C#》的主题,探讨一些经典的设计模式,并结合《Head First Design Patterns》的结构进行讲解。 首先,我们需要理解设计模式的基本概念。设计模式是由Christopher Alexander提出的,它描述了在...

Global site tag (gtag.js) - Google Analytics