有一个 class 可以控制其他 class 吗?
It is ok to have a class that controls other classes?
假设在我的项目中我有 classes 接口、网络、数据库和调解器。
例如,当我在界面上单击 "Send" 时,它将与 Mediator 对话并调用一个函数 "Send",然后该函数将与网络 class 和数据库 class 发送一些东西并保存它或其他什么。
如果我从界面中删除调解器 class,我将不得不与两个独立的 classes,网络和数据库独立对话。
问题是,我认为有一个调解器 class 打破了单一职责原则,它 class 存储了其他 3 个 classes(接口、数据库和网络)并管理它们之间的所有交互,这并不大class,但有更好的方法吗?我是否应该在每个 class 中独立地引用我需要的每个其他 class?谢谢
单一职责原则意味着实体不应执行超出其目的的操作。您陈述您的调解员 class 的目的,只要您坚持其目的,您就不会违反原则。
这里我给你举个例子,说明你会如何违反原则。假设您需要一个新的数据库相关功能。如果出于某种原因,您最终在 Mediator class 中实现了该功能,那么您将违反原则。
假设在我的项目中我有 classes 接口、网络、数据库和调解器。
例如,当我在界面上单击 "Send" 时,它将与 Mediator 对话并调用一个函数 "Send",然后该函数将与网络 class 和数据库 class 发送一些东西并保存它或其他什么。
如果我从界面中删除调解器 class,我将不得不与两个独立的 classes,网络和数据库独立对话。
问题是,我认为有一个调解器 class 打破了单一职责原则,它 class 存储了其他 3 个 classes(接口、数据库和网络)并管理它们之间的所有交互,这并不大class,但有更好的方法吗?我是否应该在每个 class 中独立地引用我需要的每个其他 class?谢谢
单一职责原则意味着实体不应执行超出其目的的操作。您陈述您的调解员 class 的目的,只要您坚持其目的,您就不会违反原则。
这里我给你举个例子,说明你会如何违反原则。假设您需要一个新的数据库相关功能。如果出于某种原因,您最终在 Mediator class 中实现了该功能,那么您将违反原则。