我有一个具有显式类模板专业化和另一个部分类模板专业化的类模板。
template< typename T1, typename T2 >
class A{
internal_representation1 inRep;
// methods
};
template<>
class A < specific_type_1,specific_type_2 >{
//internal represenation different for this type.
internal_representation2 inRep;
// methods
};
template< template T1 >
class A < T1,specific_type_2 >{
//internal represenation different for this type.
internal_representation3 inRep;
// methods
};
专业化导致接口重复。类模板及其特化都具有相同的方法名称,但它们的实现不同。具体来说,它们的内部数据结构的表示。
我应该用桥接设计模式替换上述实现吗?
注意:这个问题与我们如何使用 boost::mpl 实现构建器设计模式有关?