二十三种设计模式之一单例模式

来源:互联网 发布:在html中引入js文件 编辑:程序博客网 时间:2024/05/20 02:52

单例模式定义: Ensure  a class has only one instance ,and provide a global point pf access to it( 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例)

优点:1

  1. 内存只有一个实例 !减少内存开支特别对于频繁的创建和销毁而且又无法优化
  2. 减少系统性能开销
  3. 避免多重占用
  4. 可以设置全局访问点优化和共享资源

缺点

  1. 扩展难
  2. 对测试不利
  3. 与单一职责有冲突

使用环境:

  1. 要求生成唯一序列号的环境
  2. 再整个项目中需要一个共享访问点或共享数据
  3. 创建一个对象需要消耗的资源过多 如果要访问IO和数据库等资源
  4. 需要定义大量的静态常量和静态方法


代码结构:

第一种通用的:

public class Singleton {private  static final Singleton SINGLETON = new Singleton();//限制产生多个对象private Singleton(){}// 通过该方法获得实例对象private static Singleton getSingleton(){return SINGLETON;}// 类中的方法,尽量是staticpublic static void doSomeThing(){}}

第二种线程不安全的

public class Singleton {private  static Singleton SINGLETON = null;//限制产生多个对象private Singleton(){}// 通过该方法获得实例对象private static Singleton getSingleton(){if(SINGLETON==null){SINGLETON= new Singleton();}return SINGLETON;}// 类中的方法,尽量是staticpublic static void doSomeThing(){}}
注: 自己记录读设计之禅的笔记

0 0
原创粉丝点击