《Android源码设计模式与实战》笔记1——开篇

来源:互联网 发布:中国网络经纪人客户端 编辑:程序博客网 时间:2024/06/08 18:32
一、介绍
  1. 单例模式是应用最广的模式之一。
  2. 单例对象的类必须保证只有一个实例存在。
     例如:ImageLoader中包涵有线程池、缓存系统、网络请求等就不需要全写出来。
二、定义
确保某个类只有一个实例,并能自行的想向整个系统提供这个实例。
三、UML图
    角色:
  •    Client——高层客户端
  •    Sington——单例类
    关键点:
  1. 构造函数不对外开放,一般是private;
  2. 通过一个构造器或者枚举类返回一个单例对象;
  3. 确保单例类的对象只有一个,尤其是多线程环境下;
  4. 确保单例对象在反序列化的时候不会重新构建对象;

四、推荐使用方法
    静态内部类单例模式

public class Singleton{
    private Singleton{}
    pubic static Singleton getInstance(){
        return SingletonHolder.sInstance;
    }
    
    /**
     *静态内部类
     */
    private static class SingletonHolder{
        private static final Singleton sInstance = new Singleton();
    } 
}

优点:比较安全的单例模式(在反序列化时可能不为单例,看需求吧


    枚举单例模式
public enum Singleton{
    INSTANCE;
    public void doSomething(){
        //方法体
   }
}
优点:传说中最安全的单例模式,但不一定全部适用
阅读全文
1 0
原创粉丝点击