享元(Flyweight)
Intent
利用共享的方式来支持大量细粒度的对象,这些对象一部分内部状态是相同的。
Class Diagram
- Flyweight:享元对象
- IntrinsicState:内部状态,享元对象共享内部状态
- ExtrinsicState:外部状态,每个享元对象的外部状态不同
Implementation
1 | public interface Flyweight { |
1 | public class ConcreteFlyweight implements Flyweight { |
1 | public class FlyweightFactory { |
1 | public class Client { |
1 | Object address: 1163157884 |
JDK
Java 利用缓存来加速大量小对象的访问时间。
- java.lang.Integer#valueOf(int)
- java.lang.Boolean#valueOf(boolean)
- java.lang.Byte#valueOf(byte)
- java.lang.Character#valueOf(char)
