一、应用场景
享:共享
元:数据
如果存在很多相同或相似的对象,可以通过享元模式,合并为一个,供所有人调用,以起到节省内存的作用,但也是以时间换空间,节省了内存,但增加了运行时间。
二、核心
享元模式要经常和工厂模式搭配使用
如:围棋
棋子颜色大小形状相同,但位置不同,所以 颜色大小形状是内部状态,位置是外部状态
三、 实现
UML图:
四、开发中的应用场景
共享线程池中的线程;
共享String类中常亮池中的变量;
五、优缺点
优点
缺点
六、代码实现
1、享元类(内部状态)
2、坐标类(外部状态)
3、具体的享元类
4、享元工厂类
5、测试
通过享元工厂得到棋子对象,棋子展示的时候传入坐标;
结果:
七、类图