Существует ли шаблон проектирования или идиома для фабричного метода в интерфейсе, который возвращает новый экземпляр того же интерфейса? Например, в C ++ это может выглядеть так:
class IFoo
{
public:
virtual std::auto_ptr<IFoo> Operation();
};
Где метод Operation
для некоторого конкретного подкласса IFoo создает и возвращает новый экземпляр (потенциально другого) конкретного подкласса IFoo.