1
1
我肯定会认为这是混血儿,布鲁斯·埃克尔也是。( http://www.artima.com/weblogs/viewpost.jsp?thread=132988 ) 在我看来,使其成为混合体的原因之一是它仍然是单一继承,这与使用mi实现类似的东西不同。 |
2
3
这是一个有趣的想法。然而,我不打算在这里给你一个已经建立的模式的名称,相反,我要解释(某种程度上)为什么我认为它已经没有一个了。 它是做什么的? 这是避免可怕的钻石遗产的一个非常好的方法。 由于方法的目的显然有些混淆,让我详细说明为什么我认为这是它的目的:
现在,我们遇到了一个问题。如果我们把
因此,我们的想法是将实现推迟到最后一刻。 优势:
不方便:
提供的示例:
那叫什么名字? 我想不出任何与此完全匹配的东西。桥和装饰一直提到,但这是非常特殊的,确实不是面向对象(例如,它不会发生在爪哇,因为你没有多继承),所以我怀疑这个词将在GoF的书中找到。 而且,它不是真正的CRTP,因为CRTP中有一种循环(基础意识到它的派生类),而这种循环在这里没有发生>我们确实是严格线性的! 然后,它肯定不是PIMPL习惯用法,它建议在使用模板进行实现时,将实现隐藏在远离客户机的地方,而只是将它抛到自己的脸上!(模板可以使用PIMPL作为内部细节) 我谦虚地建议 吉蒂 对于 及时实施 它以某种方式模仿了标题,但更接近我认为的观点,这里的派生只是一个工具,而不是一个目标。 不管怎样,这个主意很有趣。 |
3
1
我不确定这是否有名字,因为gf建议它看起来有点像桥型。这几乎就像是将功能挂接到基类上。 我建议给这个取个新名字 pimp 成语。当你给你的基础阶级拉皮条时;) |
4
1
你在找 Decorator pattern ? 基本上,decorator是一个包含另一个对象并扩展某些方法功能的对象。然后,方法调用被转发到封闭的方法。 |
5
1
这是一个混音 |
6
1
查看您的引用计数示例,您可能会很高兴地看到ccombject<>,它是ATL包含的用于提供IUnknown实现的少数模板类之一。它还使用策略类来改变行为。很自然地,信噪比尝试谷歌 关于 cMobject非常低,因为它无处不在。这个msdn文章可能会给你更多的“关键字”来帮助任何搜索。 http://msdn.microsoft.com/en-us/library/c43h4867(VS.80).aspx [注:只是说清楚-我不是建议他 使用 cCombject,我建议它是同一概念的另一个流行例子,因此可能在模式书或文章中被引用] |
7
0
看起来像 Pimpl idiom 是吗?可能是以一种不寻常的方式使用。 |
8
0
我不确定,但它是“空成员C++优化”吗? 这种行为是用 类模板 和 私人继承 . 这在杂志上一篇名为 C++中的“计数对象” 作者:Scott Meyer。 |
9
0
回答我自己的问题。第一个疯狂的迹象?-不,在这之前有几个迹象;-) 不管怎么说,从我最初发表文章到现在已经很久了,不管怎样,我或多或少是一个不同的人。 我发现我已经确定了名字, 混频 . 我发现这非常适合,可以被认为是一个混合的精致,而不是被排除在更普遍的概念。 我最近一直在使用它们,所以我想我会回来更新这个线程。 |
Malvineous · 定义编译时间常数的最佳方法 9 年前 |
Søren Debois · 执行类型单元表达式的习语iff条件为真 10 年前 |
the wolf · 确保矩阵元素长度的“Python”方法 12 年前 |