单一职责原则和聚合

The single responsibility principle and aggregation

我知道单一责任原则指出一个 class 应该只有一个责任或一个改变的理由。这是否意味着具有许多聚合成员变量的 class 违反了此原则?我的意思是,当 class 将其某些操作委托给它的聚合成员变量时,是否违反了 SRP?或者这些聚合成员是否被认为只对它们的操作负责,而包含它们的 class 与这些操作无关?

class里面有多少不是重点。这就是 class 所做的。这是为了什么。它的责任是什么。 class 可能不会公开任何这些聚合成员。它可能只有一种方法。所有这些成员都需要完成这项工作。只要它有一份工作就不会违反单一职责原则。

也就是说,将本应归入其他职责的工作进行分组和抽象处理的事情可能会过度扁平化。如果这些抽象职责的变化影响了我们 class 它们没有被正确抽象。

拥有对对象的引用应该只会让您看到它的接口。不是它的内部变化。