webcode 发表于 2013-1-26 15:35:09

Modern C++ Design, Spring Framework和Ruby的Mixin....

原文出处及讨论:http://www.blogjava.net/calvin/archive/2005/11/01/17678.html
作者:江南白衣

《Modern C++ Design》里的Policy-Base Class是Cpper得意的一样事情;
Spring 式IoC container 的依赖注入是Javaer得意的一样事情;
Ruby的Mixin特性是Rubyer得意的一样事情。

有趣的是,各自得意的事情,指向的是同一个问题:多重行为的组合。

1 .Policy-Base是混合使用模板与C++的多重继承达成的:
最终类多重继承模版类,由模版传入实际的行为类(Policy Class)。

<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">template<classCheckingPolicy>
classSmartPtr : public CheckingPolicy
{...};

typedefSmartPtr<NoChecking>noCheckPtr;
页: [1]
查看完整版本: Modern C++ Design, Spring Framework和Ruby的Mixin....