1.享元模式
享元模式的定义是:享元模式是一种用于性能优化的模式。享元模式的核心
是运用共享技术来有效支持大量细粒度的对象。
2.享元模式的内部状态和外部状态
1.享元模式要求将对象的属性划分为内部状态和外部状态(状态通常指的是属性)
2.享元模式的目标是尽量的减少共享对象的数量。
3.如何划分内部状态和外部状态:
1.内部状态存储在对象的内部
2.内部状态可以被一些对象共享
3.内部状态独立于具体的场景,通常不会改变。
4.外部状态取决于具体的场景,并根据场景而变化,外部状态不能被共享。
4.使用享元模式的关键是如何区别内外部状态
5.享元模式是一种用时间换取空间的模式。
3.享元模式的通用结构
问题1:我们通过构造函数显示new出来了两个男女模特对象,在其他的系统中
特许并不是一开就需要所有的共享对象。
我们可以用一个对象工厂来解决,只有当共享对象被真正需要的时候,才从
工厂中被创建出来
问题2:给模特对象手动设置clothes外部状态,在更复杂的系统中,这不是一个
最好的方式,因为外部状态可能相当的复杂,它们与共享对象的联系会
变得困难。
我们可以用一个管理器来记录对象相关的外部状态,使得这些外部状态通过
某个钩子和共享对象联系起来
4.享元模式的适用性
1.享元模式是一种很好的优化性能的方案,但是同时也带来了复杂性的问题
2.享元模式带来的好处很大的程度上取决于如何使用以及何时使用
3.享元模式的使用时机:
1.一个程序中使用了大量的相似对象
2.由于使用了大量的相似对象,造成了很大的内存开销
3.对象的大多数状态都可以变成外部状态
4.剥离出对象的外部状态之后,可以用相对较少的共享对象取代大量的对象。
5.对象池的概念和理解
对象池维护一个装在空闲对象的池子,如果需要对象的时候,不是直接new对象,而是
从对象池中获取。如果对象池没有空闲的对象,那么我们在才创建一个新的对象出来,
当获取的对象完成了它的职责之后,再次进入池子等待下次被获取。
6.对象池案例的实现
7.享元模式的小结
1.享元模式是为了解决性能问题而生的模式。
2.享元模式可以解决大量对象带来的性能问题。
享元模式
最新推荐文章于 2024-01-16 15:19:23 发布