在开发过程中,我们经常会遇到创建大量具有相似属性的对象的情况。比如:在一个图形编辑器中,可能有成千上万的小图标或文字字符;在一个游戏中,可能有大量的敌人、子弹等重复元素。如果每个这样的对象都独立存储其所有信息,将会占用大量的内存空间,并可能导致性能问题。为了优化这种情况,我们可以考虑只创建一份包含共同属性的数据副本,然后让不同的对象引用这份数据。同时,各自维护自己的独特属性。这就是享元模式的核心思
运用共享技术有效地支持大量细粒度的对象。在围棋中,棋子就是大量细粒度的对象。其属性有内在的,比如颜色、形状等,也有外在的,比如在棋盘上的位置。内在的属性是可以共享的,区分在于外在属性。因此,可以这样设计,只需定义两个棋子的对象,一颗黑棋和一颗白棋,这两个对象含棋子的内在属性;棋子的外在属性,即在棋盘上的位置可以提取出来,存放在单独的容器中。相比之前的方案,现在容器中仅仅存放了位置属性,而原来则是棋
享元模式是一种结构型的设计模式。一、什么是享元模式 二、 角色组成 三、优缺点 四、应用场景 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
登录社区云,与社区用户共同成长
邀请您加入社区