gpt4 book ai didi

c++ - 关于 C++ 中 Blob 反模式的问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:19 24 4
gpt4 key购买 nike

我正在使用 C++ 为我们部门开发视频播放器。

这个视频播放器有三个核心模块:Reader(读取数据包)、Processor(解码原始数据)、Display Handle(在屏幕上绘制数据)。它们不是紧密耦合的类,这意味着它们在某种程度上是独立执行工作的。

但是,我有一个 GUI 模块连接这三个模块和客户端。它将检索来自用户的命令,例如暂停、继续、跳转到视频剪辑中的特定位置。然后,此 GUI 模块会将作业委托(delegate)给上述三个模块。结果,这个 GUI 模块变得相当大,因为它包含许多客户端将与之交互的功能。虽然我再次非常小心,我不让这个 GUI 模块做任何真正的处理任务(它们在三个核心模块上完成),但我担心这个 GUI 模块会变成一个上帝对象或“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_;
}

.......区域还有很多功能。它们是人们需要媒体播放器的功能。他们不执行真正的处理,他们将工作委托(delegate)给模块。

任何人都可以帮助澄清我对这个 GUI 模块是使用所描述设计的“Blob”的担忧吗?

最佳答案

在我看来,这不像是一个 blob — 它只是一个用于播放模块的功能丰富的 GUI Controller 。不过,如果里面塞满了与播放无关的附加功能,如“设置”、“插件管理”等,它会变成一个 blob。

关于c++ - 关于 C++ 中 Blob 反模式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com