我有一个带有显式类模板特化的类模板和另一个部分类模板特化。
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
};
专业化会导致界面重复。类模板及其特化都具有相同的方法名称,但实现方式不同。具体来说,它们的内部数据结构的表示。
我应该用桥接设计模式替换上面的实现吗?
注意:此问题与How can we implement the Builder design pattern using boost::mpl?
有关答案 0 :(得分:0)
您还可以使用state pattern(适用于不同的内部表示),但这取决于您在项目中需要什么。状态模式允许您使用相同的对象,但如果您需要不同的对象,您还可以使用factory method。