【问题标题】:Class Design - The responsibilities for the classes类设计 - 类的职责
【发布时间】:2013-09-30 00:10:55
【问题描述】:

说,我有 2 个类,即 Audio 和 AudioManager。我的问题是,这些功能是否应该

void Play();
void Resume();
void Pause();
void Stop();
void Load();

在 Audio 类或 AudioManager 中?

嗯,我所做的是将它们全部放入 AudioManager 类,但我不太确定。

【问题讨论】:

    标签: oop design-patterns class-design fmod


    【解决方案1】:

    将它们视为真实的单词概念。事实上他们是。如果您将 CD 插入 CD 播放器,您会点击 CD 还是播放器?当然是播放器。您列出的功能属于播放器。

    我认为AudioManager 这个名字并没有描述它的任务。通常不鼓励使用名称Manager,因为它是一个宽泛的概念。在你的情况下Player 会更好。

    在您的情况下,音频只是一种数据结构,不应具有这些功能。

    只是一个评论:您帖子中的大多数功能都很简单,但Load 有点令人困惑。它是加载曲目还是将 CD 加载到播放器中?

    【讨论】:

    • 是的!这正是我的想法! (除了例子,我想我会在遇到类似问题时使用你的方式)。好吧,对于 Load(),它会将“Track”加载到“CD”
    • 感谢音频管理器对玩家的建议。会改的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多