黑马程序员技术交流社区

标题: 享元模式 [打印本页]

作者: 崔利鹏    时间: 2012-11-6 12:00
标题: 享元模式
本帖最后由 super携手 于 2012-11-8 09:59 编辑

什么是享元模式呢?还是有点模糊不清,请大家帮忙。谢谢
作者: 蒋欣琦    时间: 2012-11-6 12:31
在单纯享元模式中,所有的享元对象都是可以共享的。单纯享元模式所涉及的角色如下:
抽象享元(Flyweight)角色:此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口。那些需要外蕴状态(External State)的操作可以通过调用商业方法以参数形式传入。
具体享元(ConcreteFlyweight)角色:实现抽象享元角色所规定的接口。如果有内蕴状态的话,必须负责为内蕴状态提供存储空间。享元对象的内蕴状态必须与对象所处的周围环境无关,从而使得享元对象可以在系统内共享的。
享元工厂(FlyweightFactory)角色:本角色负责创建和管理享元角色。 本角色必须保证享元对象可以被系统适当地共享。当一个客户端对象调用一个享元对象的时候,享元工厂角色会检查系统中是否已经有一个复合要求的享元对象。如 果已经有了,享元工厂角色就应当提供这个已有的享元对象;如果系统中没有一个适当的享元对象的话,享元工厂角色就应当创建一个合适的享元对象。

Pic86.gif (6.8 KB, 下载次数: 22)

Pic86.gif

作者: 马纵驰    时间: 2012-11-6 12:37
享元模式
有很多个小的对象。他们的属性有很多相同的地方,那么就可以把他们变成同一个对象。相同的属性我们把它称之为内部状态,而那些不相同的属性我们把它变成方法的参数,称之为外部状态。
作者: 崔利鹏    时间: 2012-11-6 13:04
谢谢拉、、、、明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2