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 <class CheckingPolicy>
class SmartPtr : public CheckingPolicy
{...};
typedef SmartPtr<NoChecking> noCheckPtr;
页:
[1]