В нашей системе есть несколько классов, построение которых должно происходить асинхронно. Мы заключаем процесс построения в другой класс, производный от класса IConstructor
:
class IConstructor {
public:
virtual void Update() = 0;
virtual Status GetStatus() = 0;
virtual int GetLastError() = 0;
};
Существует проблема с дизайном текущей системы - функции, которые создают классы IConstructor
, часто выполняют дополнительную работу, которая также может давать сбой. В этот момент вместо получения конструктора, который может быть запрошен на предмет ошибки, возвращается указатель NULL
.
Перестройка кода во избежание этого возможна, но отнимает много времени. Тем временем я решил создать класс конструктора, который мы создаем и возвращаем в случае ошибки, вместо указателя NULL
:
class FailedConstructor : public IConstructor
public:
virtual void Update() {}
virtual Status GetStatus() { return STATUS_ERROR; }
virtual int GetLastError() { return m_errorCode; }
private: int m_errorCode;
};
Все вышеперечисленное - это настройка для мирского вопроса: как назвать класс FailedConstructor
? В нашей нынешней системе FailedConstructor
будет означать «класс, который создает экземпляр Failed
», а не «класс, который представляет неудачную попытку создать другой класс».
Мне кажется, его следует назвать одним из шаблонов проектирования, например Proxy
или Adapter
, но я не уверен, какой именно.
РЕДАКТИРОВАТЬ: Я должен дать понять, что я ищу ответ, который в идеале придерживается одного из шаблонов проектирования GoF или какого-либо другого устоявшегося соглашения об именовании для вещей такого рода .