读书人

【2013.1.31】设计方式C++ 实现Fl

发布时间: 2013-02-03 12:33:31 作者: rapoo

【2013.1.31】设计模式C++ 实现——Flyweight

// // // // // // // // //

///2013.1.31

// // // // // // // // //

Flyweight模式,

有一个有趣的翻译:

——蝇量模式。


【核心】将大量粒度(小的)的对象进行共性与特殊性的分离,用'提取'代替'创建'重复的部分。


UML图:

【2013.1.31】设计方式C++ 实现——Flyweight

其目的非常单纯,

在程序中大量应用的重复小数据,

就像这篇文章中的文字——例如'的',

在它重复大量出现的时候,

如果每一次的实现都为其实例化一次,

将会造成大量重复的开销。

为此,

Flyweight会将这些重复的归为一类(放到一个大字典中),

在需要的时候提取出来就好了。


当然即使是拥有共性的物体也可能具有各自的特殊性:

例如'的'有以下几种形式:


都是同一个字,

但却有不同的表现形式,

这种时候,

就是UML图中的没有进行共享的那一部分:

——外部状态的设计目的了。


读书人网 >软件开发

热点推荐