Java23种设计模式【12】----》享元模式(FlyWeight)

一、应用场景

享:共享

元:数据

如果存在很多相同或相似的对象,可以通过享元模式,合并为一个,供所有人调用,以起到节省内存的作用,但也是以时间换空间,节省了内存,但增加了运行时间。

二、核心

享元模式要经常和工厂模式搭配使用

如:围棋

棋子颜色大小形状相同,但位置不同,所以 颜色大小形状是内部状态,位置是外部状态

三、 实现

UML图:

四、开发中的应用场景

共享线程池中的线程;

共享String类中常亮池中的变量;

五、优缺点

优点

缺点

六、代码实现

 1、享元类(内部状态)

2、坐标类(外部状态)

3、具体的享元类

4、享元工厂类

5、测试

通过享元工厂得到棋子对象,棋子展示的时候传入坐标;

结果:

七、类图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值