登录社区云,与社区用户共同成长
邀请您加入社区
运用共享技术有效地支持大量细粒度的对象。在围棋中,棋子就是大量细粒度的对象。其属性有内在的,比如颜色、形状等,也有外在的,比如在棋盘上的位置。内在的属性是可以共享的,区分在于外在属性。因此,可以这样设计,只需定义两个棋子的对象,一颗黑棋和一颗白棋,这两个对象含棋子的内在属性;棋子的外在属性,即在棋盘上的位置可以提取出来,存放在单独的容器中。相比之前的方案,现在容器中仅仅存放了位置属性,而原来则是棋
核心模块:抽象享元类,具体享元类,享元工厂类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:大量细小粒度对象的复用;优点:减少内存中对象数量,节约系统资源,提高对象的复用率,内外状态分开隔离;缺点:增加了代码复杂度;注意:1,外部状态用来在工厂类中寻址,内部状态用来自己
享元模式是一种结构型的设计模式。一、什么是享元模式 二、 角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构5.1 Bike——抽象享元类(FlyWeight)5.2 具体享元类(ConcreteFlyWeight)5.3 BikeFactory——享元工厂(FlyWeightFactory)5.4 testFlyWeight 六、总结
享元模式通过共享技术有效地支持细粒度、状态变化小的对象复用,当系统中存在有多个相同的对象,那么只共享一份,不必每个都去实例化一个对象,极大地减少系统中对象的数量。享元模式的核心是享元工厂类,享元工厂类维护了一个对象存储池,当客户端需要对象时,首先从享元池中获取,如果享元池中存在对象实例则直接返回,如果享元池中不存在,则创建一个新的享元对象实例返回给用户,并在享元池中保存该新增对象,这点有些单例的意
摘要:本文我们主要介绍结构型模式中的代理模式、装饰模式、外观模式和享元模式。
享元模式
——享元模式
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net