Skip to content

Commit

Permalink
update singleton
Browse files Browse the repository at this point in the history
  • Loading branch information
hehonghui committed Mar 16, 2015
1 parent 2f04adf commit dc64653
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions singleton/mr.simple/readme.md
Expand Up @@ -220,7 +220,8 @@ public class Singleton {
}

}
```
```
不管以哪种形式实现单例模式,它们的核心原理都是将构造函数私有化,并且通过静态方法获取一个唯一的实例,在这个获取的过程中你必须保证线程安全、反序列化导致重新生成实例对象等问题,该模式简单,但使用率较高。

## Android源码中的模式实现
在Android系统中,我们经常会通过Context获取系统级别的服务,比如WindowsManagerService, ActivityManagerService等,更常用的是一个叫LayoutInflater的类。这些服务会在合适的时候以单例的形式注册在系统中,在我们需要的时候就通过Context的getSystemService(String name)获取。我们以LayoutInflater为例来说明, 平时我们使用LayoutInflater较为常见的地方是在ListView的getView方法中。
Expand Down Expand Up @@ -491,5 +492,4 @@ class ContextImpl extends Context {
* 单例模式可以在系统设置全局的访问点,优化和共享资源访问,例如可以设计一个单例类,负责所有数据表的映射处理。

#### 缺点
* 单例模式一般没有接口,扩展很困难,若要扩展,除了修改代码基本上没有第二种途径可以实现。
* 单例模式与单一职责原则有冲突。
* 单例模式一般没有接口,扩展很困难,若要扩展,除了修改代码基本上没有第二种途径可以实现。

0 comments on commit dc64653

Please sign in to comment.