我正在使用C ++为我们部门开发视频播放器。
此视频播放器有三个核心模块:Reader(用于读取数据包),Processor(解码原始数据),Display Handle(在屏幕上绘制数据)。它们不是紧密耦合的类,这意味着它们独立地执行它们的工作。
但是,我有一个GUI模块,可以连接这三个模块和客户端。它将从用户检索命令,例如暂停,继续,跳转到视频剪辑中的特定位置。然后,该GUI模块将作业委托给上面提到的三个模块。 因此,此GUI模块变得相当大,因为它包含客户端将与之交互的许多功能。虽然我再次非常小心,我不让这个GUI模块做任何真正的处理任务(它们是在三个核心模块上完成的),恐怕这个GUI模块变成了God Object或者“Blob”这是一个反对 - 面向对象设计中的模式。
这是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”的担忧吗?
答案 0 :(得分:1)
对我来说这看起来不像是一个blob - 它只是一个功能丰富的GUI控制器,用于播放模块。如果它充满了与播放无关的其他功能,如“设置”,“插件管理”等,它将成为一个blob。