В настоящее время я пытаюсь разработать общий Abstract Factory и имеют следующий класс дизайн набросал:C++ Generic Abstract Factory Design Вопрос
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:
Я хотел бы добавить причину этого в том, что я буду использовать аллокатор заказа памяти в пределах завода.