android中常见的设计模式-单例模式

单例模式

顾名思义,就是只有一个实例。那如何能保证访问的对象是单例且是线程安全的呢。我们就从以下几点分析以下:

常见的单例模式如下:

1.饿汉式


特点:声明静态对象时就已经初始化对象,所以是线程安全的。

2.懒汉式


特点:第一次调用getInastance()方法的时候初始化对象,在访问对象上增加了synchronized字段,会造成资源消耗浪费,必须同步才可以完成调用,影响多线程访问效率,但如果不加synchronized 字段,会造成线程不安全。

3.静态内部类单例模式。



加载singleton 类时不会初始化instance 只有在调用getInstance 方法时,才会导致instance 被初始化,这个方法不仅能够确保线程安全,也能够保证 单例对象的唯一性,同时也延迟了单例的实例化,是推荐使用的单例模式实现方式。

4.容器模式


特点:容器模式可以把很多单例注入到一个容器中,然后根据key获取对应的对象。好处是:可以统一管理、降低用户使用成本,隐藏实现、降低耦合度。

5.其他模式,还有一些是不常见的,比如:枚举单例、DCL模式,这里就不介绍了。

你可能感兴趣的:(android中常见的设计模式-单例模式)