【问题标题】:It is ok to have a class that controls other classes?有一个控制其他类的类可以吗?
【发布时间】:2020-04-23 06:48:09
【问题描述】:

假设在我的项目中,我有接口、网络、数据库和中介类。

例如,当我在 Interface 上单击“Send”时,它会与 Mediator 对话并调用一个函数“Send”,然后该函数将与 Network 类和 Database 类对话以发送并保存它或其他什么。

如果我删除 Mediator 类,我将不得不从 Interface 中分别与两个单独的类,Network 和 Database 进行对话。

问题是我认为有一个 Mediator 类打破了单一责任原则,它是一个存储其他 3 个类(接口、数据库和网络)并管理它们之间所有交互的类,它不是一个大类,但是有一个更好的方法?我应该在每个班级中独立地参考我需要的每个其他班级吗?谢谢

【问题讨论】:

  • 它是如何破坏 SRP 的?如果它的目的是管理它们之间的交互并且只这样做,这并不违反原则
  • 说你刚才说“fu**”,我弄错了关于 SRP 的理论。

标签: c++ architecture


【解决方案1】:

单一职责原则意味着实体不应执行超出其目的的行为。你陈述了你的 Mediator 类的目的,只要你坚持它的目的,你就不会违反原则。

这里我给你一个例子,说明你会如何违反原则。假设您需要一个新的数据库相关功能。如果出于某种原因,您最终在 Mediator 类中实现了该功能,那么在这种情况下,您将违反该原则。

【讨论】:

    猜你喜欢
    • 2014-04-21
    • 2019-09-24
    • 2012-11-09
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多