应用:图文编辑器
场景:考虑文本编辑器,如果每个字符生成一个全新独立对象,将生成大量细粒度对象,该对象的某些属性对象全新生成将消耗大量内存,如字体属性。如果把这些字体对象放对象池中,字符对象对其进行引用将节省大量内存。
结构
代码实现
要点
1、本设计模式主要解决面向对象的代价问题,一般不触及面向对象的抽象性问题。
2、本模式通过共享对象来减少系统中对象个数,从而减少内存消耗。在具体实现时,要注意状态的处理。
3、根据实际情况评估对象数量巨大带来的性能影响,共享对象后对性能的影响。以判断是否需要使用此模式以及该把那些对象放共享对象池中。