此c ++实现模式的名称

时间:2011-08-17 19:43:55

标签: c++ class design-patterns iostream

C ++中有一些实现模式,我在下面描述,它用于std :: iostream库和其他类似的库。

有人能回忆起这种模式的名称吗?

模式描述如下:
- 存在用于输出数据或转换数据的中央类IO(例如,std :: ostream) - 对于定义了输出转换的每个应用程序类,“转换器”是GLOBAL函数,而不是IO的成员函数。这种模式的动机是

(1)IO的设计者想要“完成”,当添加另一个带转换器的应用程序类时不需要进行任何更改,并且

(2)因为你希望IO是一个小的可管理类,而不是一个有100个成员和1000行的类。当IO类和大量“用户”类之间需要解耦时,这种模式很常见。

这种模式的名称是什么?

2 个答案:

答案 0 :(得分:2)

看起来像Herb Sutters的“接口原理”

至少我是从他的一本书中读到的

接口必须是最小的,所有不需要私有数据(用于编译或运行时速度)的函数应该在外部函数中。

答案 1 :(得分:2)

这根本不是设计模式。

设计模式与程序语言无关。您所描述的内容已完成,因为类std :: ostream来自库。所以你不能方便地添加“operator<<(MyClass& ob)”成员函数。

正确的术语而不是设计模式是“成语”。例如:http://en.wikibooks.org/wiki/C++_Programming/Idiomshttp://en.wikibooks.org/wiki/More_C%2B%2B_Idioms(不确定您的案例是否列出,乍看之下我没有找到它)