Я разрабатываю видеоплеер для нашего отдела с использованием C ++.
Этот видеоплеер имеет три основных модуля: Reader (для чтения пакетов данных), Processor (декодирование необработанных данных), Display Handle (рисование данныхна экране).Они не являются тесно связанными классами, что означает, что они выполняют свою работу как бы самостоятельно.
Однако у меня есть модуль GUI, который связывает эти три модуля и клиент.Он будет получать команды от пользователя, такие как пауза, продолжить, перейти к определенному месту в видеоклипе.Этот модуль GUI затем делегирует задания трем модулям, упомянутым выше.В результате этот модуль GUI становится довольно большим, поскольку содержит много функций, с которыми клиент будет взаимодействовать.Хотя, опять же, я очень осторожен, что не позволяю этому модулю GUI выполнять какие-либо реальные задачи обработки (они выполняются на трех основных модулях), я боюсь, что этот модуль GUI становится объектом God или «Blob», который является анти-pattern в объектно-ориентированном дизайне.
Вот пример объявления для модуля GUI здесь:
class CorePlayer
{
public:
CorePlayer();
~CorePlayer();
public:
void start();
void pause();
void continue();
void jumpToFrame(int frameNum);
void toggleFullScreen();
.........
private:
Reader* rModule_;
Processor* pModule_;
DisplayHandle* dspHandle_;
}
В ........ есть намного больше функций ........площадь.Это функции, которые нужны людям для медиаплеера.Они не выполняют реальную обработку, они делегируют задания модулям.
Может ли кто-нибудь помочь прояснить мои опасения, что этот модуль GUI является «BLOB-объектом», используя описанную конструкцию?