私は現在、一般的な抽象工場を設計し、以下のクラスのデザインは、スケッチ持ってしようとしています:C++一般的な抽象ファクトリーデザイン質問
template <typename T>
class TFactory
{
public:
template <typename A>
static T* create(A a);
template <typename A, typename B>
static T* create(A a, B b);
template <typename A, typename B, typename C>
static T* create(A a, B b, C c);
static T* destory(T* ptr);
};
を工場出荷時には、次にように使用することができます。
Factory<MyType>::create(1, "hello");
Factory<MyType>::create<short, const std::string&>(1, "hello");
これを設計するより良い方法はありますか?これはvarargsより優れているようですが、それでも私は最大10個の関数をオーバーロードしています。
EDIT:
私はこの理由を追加する必要がありますが、私は工場内のカスタムメモリアロケータを使用することです。