S.O.L.I.D 中的继承是否映射到单一职责?
Does inheritance maps to the single responsibility in S.O.L.I.D?
据我所知,映射到单一责任原则的主要 OOP 概念是抽象,但假设我们有一个完整的软件,需要一些新的需求,因此我们可以扩展现有的 类 而不会影响它们或添加他们的新职责(即继承)。因此我们可以说继承也映射并有助于单一职责原则。请帮我澄清一下这个论点。
单一职责原则就是凝聚力。您想要创建具有高度内聚性的 classes,这意味着 class 的元素彼此密切相关。此原则的目标是创建 class 只有一个责任的实体,更具体地说,它应该只有 一个更改理由 。
继承确实可以帮助这个原则,但这取决于你如何使用它。关于如何创建只有一个更改原因的 classes 有很多方法,通常,这是通过许多面向对象设计的技术实现的,例如组合、继承、接口等,没有银弹可以实现它。
我建议检查核心 design patterns of OOP, in order to get a better taste of how to add new responsibilities to an object. Decorator 是一个很好的例子,它使用继承和组合。
据我所知,映射到单一责任原则的主要 OOP 概念是抽象,但假设我们有一个完整的软件,需要一些新的需求,因此我们可以扩展现有的 类 而不会影响它们或添加他们的新职责(即继承)。因此我们可以说继承也映射并有助于单一职责原则。请帮我澄清一下这个论点。
单一职责原则就是凝聚力。您想要创建具有高度内聚性的 classes,这意味着 class 的元素彼此密切相关。此原则的目标是创建 class 只有一个责任的实体,更具体地说,它应该只有 一个更改理由 。
继承确实可以帮助这个原则,但这取决于你如何使用它。关于如何创建只有一个更改原因的 classes 有很多方法,通常,这是通过许多面向对象设计的技术实现的,例如组合、继承、接口等,没有银弹可以实现它。
我建议检查核心 design patterns of OOP, in order to get a better taste of how to add new responsibilities to an object. Decorator 是一个很好的例子,它使用继承和组合。