-
十. 享元设计模式
一. 定义
- 享元模式是池技术的一种实现方式,使用共享对象来支持细粒度的对象
- 享元模式把对象信息分为了两个部分
(1)内部状态 : 可以作为对象的动态附加信息,不必存储在具体的对象中的属性(id,postAddress)
(2)外部状态 : 对象得以依赖的一个标记,随环境改变而改变 (eg:科目+考试地点的复合字符串)
- 享元模式角色
(1)Flyweight:抽象享元角色 (eg:SignInfo)
(2)ConcreteFlyweight:具体享元操作(eg:SignInfo4Pool),该类中不应该存在一个方法能同时修改外部状态和内部状态,因为内部状态不能随环境改变而改变
(3)unsharedConcreteFlyweight:不可共享的享元角色-不存在外部状态或线程安全要求,不能使用共享对象细化的对象
(4)FlyweightFactory:享元工厂-构造对象池,提供从池中获取对象的方法
- [注]:
(1)享元模式对象池中的角色应尽量多 , 多到满足业务为止
(2)尽量使用Java基本类型作为外部状态,如果把对象作为外部状态放到对象池中(HashMap),则需要重写hashcode()和equals(),造成性能不足
二.场景
-
相关阅读:
[EnterpriseLibrary]Microsoft.Practices.ObjectBuilder中的定位器Locator
[VC++入门]搞了半天我终于知道C++那种头文件h和源文件cpp到底在搞什么
PS网页设计教程XX——在Photoshop中创建一个七彩糖果店网站布局
24点的所有组合的解法
PS网页设计教程XXIII——创建一个售卖iPhone 5应用程序的网站
PSD转HTML实例教程——利用JQuery插件实现图片滑动效果
PS网页设计教程XXI——在Photoshop中创建一个光质感网页设计
24点算法之我见
PS网页设计教程XIX——在Photoshop中创建一个优雅的作品集的网页布局
PS网页设计教程XXII——在PS中创建单页复古网页布局
-
原文地址:https://www.cnblogs.com/72808ljup/p/5129510.html
Copyright © 2020-2023
润新知