Skip to content

Commit c7a8aa0

Browse files
authored
Update 单例模式.md
1 parent 5fc4177 commit c7a8aa0

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

DesignPatterns/单例模式.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ public class Single {
8181
}
8282
```
8383
第一次调用getInstance方法会导致虚拟机加载SingleHolder类,能够保证线程安全、单例对象的唯一性,延迟了单例的实例化,是推荐使用的单例模式实现方式。
84+
## 优点
85+
* 由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁的创建和销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显。
86+
* 减少了系统的性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他的依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后用永久驻留内存的方式来解决。
87+
* 单例模式可以避免对资源的多重占用,例如一个写文件操作,由于只有一个实例存在内存中,避免对同一个资源文件的同时写操作。
88+
* 单例模式可以在系统设置全局的访问点,优化和共享资源访问。例如,可以设计一个单例类,负责所有数据表的映射处理。
89+
## 缺点
90+
* 单例模式一般没有借口,扩展很困难,若要扩展,除了修改代码基本上没有第二种途径可以实现。
91+
* 单例对象如果持有Context,那么很容易引发内训泄露,此时需要注意传递给单例对象的Context最好是Application Context。
8492

8593

8694

0 commit comments

Comments
 (0)