享元模式Flyweight

[list]
[*]享元模式是对于某个对象的共享的模式,譬如String,对于相同内聚属性的对象,系统只生成一个,这样就大大减少了系统的开销。
[*]享元模式分为:抽象享元角色,具体享元,享元工厂,客户端。其中,具体享元是可以被共享的部分。但是客户端不实际生成具体享元,而是由享元工厂生成享元。工厂生产享元的时候,判断该享元是否创建过,从而达到已经创建过,或者存在享元可以不再重复创建就被客户端使用
[*]单纯享元模式和复合享元模式从本质上来说没有区别,只是复合享元模式是单纯享元模式与合成模式的结合,复合享元模式里面的享元可能是树枝,树枝下面的树叶是能够共享的,对于复合享元模式,客户端也是看不见的。这部分内容是在工厂方法内部的逻辑里面进行的。也就是每生成一个树枝,工厂方法会扫描树枝下面的树叶是否已经生成,这样能够保证树叶的共享特质
[*]复合享元模式比单纯享元模式躲了一个复合享元的角色,复合享元由具体享元说组成
[*]对象有内蕴状态和外蕴状态,通过设计,我们可以把具有相同内蕴状态,不同外蕴状态的对象视作具体享元,在系统中公用。譬如咖啡店的咖啡Order,咖啡口味是内蕴状态,咖啡桌号是外蕴状态
[*]享元模式的使用范围:一个系统有大量对象,并耗费大量内存,对象状态中大部分可以外部化,可以按照内蕴状态分别(即一个内蕴状态多个外蕴状态),相同内蕴状态的对象对于客户端是不可区分的;
[/list]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值