码迷,mamicode.com
首页 > 其他好文 > 详细

享元模式

时间:2016-09-17 23:48:00      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

1. 定义

运用共享技术有效地支持大量细粒度的对象

2. 代码结构

Flyweight: 享元接口,通过这个接口Flyweight 可以接受并作用于外部状态。通过这个接口传入外部的状态,在享元对象的方法处理中可能会使用这些外部的数据

ConcreteFlyweight: 具体的享元实现对象,必须可共享的,需要封装Flyweight的内部状态。

UnsharedConcreteFlyweight: 非共享的享元实现,并不是所有的Flyweight实现对象都需要共享。非共享的享元实现对象通常是对共享享元对象的组合对象。

FlyweightFactory:享元工厂,主要用来创建并管理共享的享元对象,并对外提供访问共享享元的接口。

Client: 享元客户端,主要的工作是维持一个对Flyweight的引用,计算或存储享元对象的外部状态。

coding...

 

3.本质

分离与共享

4.何时选择

如果一个应用程序使用了大量的细粒度对象,可以使用享元模式来减少对象数据。

如果由于使用大量的对象,造成很大的存储开销,可以使用享元模式来减少对象数量,并节约内存

如果对象的大多数状态都可以转化为外部状态,比如通过计算得到,挥着从外部传入,可以使用享元模式来实现内部状态和外部状态的分离

如果不考虑对象的外部状态,可以用相对较少的共享对象取代很多组合对象,可以使用享元模式来共享对象,然后组合对象来使用这些共享对象

 

享元模式

标签:

原文地址:http://www.cnblogs.com/zhaojunyang/p/5879958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!