У меня небольшая проблема с дизайном: у меня есть одна фабрика, которая будет создавать объекты того или иного типа. Но мое клиентское требование состоит в том, чтобы передавать (передавать) данные (с помощью методов установки) из внешнего мира в конкретный класс типа 1, а не для типа 2.
Если я помещу эти методы установки в интерфейс, они должны быть принудительно реализованы в обоих конкретных классах. Это НЕ мое требование. Я хочу передать данные 1 типа для 1-го типа (некоторые сеттеры) и хочу предоставить данные другого типа для другого типа (возможно, другие сеттеры, отличные от тех, которые содержатся в предыдущем типе.)
* 1005 например *
class ISubjectExecutor
{
public:
virtual void ISUBJECTEXECUTOR_EXPORTS_API Execute()=0;
};
class COMExecutor: public ISubjectExecutor
{
public:
virtual void Execute()=0;
void setCLSID();
void setGuids();
};
class Win32Executor : public IWin32Executor
{
public:
virtual void Execute()=0;
void setFilePath();
};
Теперь здесь я не могу использовать указатель ISubjectExecutor (* pSubjectExecutor) для вызова методов установки Win32Executor или COMExecutor по моему выбору в любое время после получения указателя (ISubjectExecutor) с фабрики. Потому что все эти сеттеры никогда не существуют внутри интерфейса ISubjectExecutor, и вы не можете получить доступ ни к какому методу, который никогда не содержится внутри интерфейса и существует в конкретной реализации.
Как решить эту проблему с дизайном .?
С уважением
Hassan