OOP有什么规则吗?
最近我听说OOP(Java)有9条规则。我只知道抽象、多态、继承和封装四个方面。OOP还有其他规则吗?这些是概念,不是规则。真的没有规则,只是要做决定,有些设计比别人好,有些比别人好得多:-) 尽管有很多指导原则:-)一些是特定于语言的(C++中充斥着它们),另一些是特定于OO的。太多,无法列出:-) 在我看来,重要的是:OOP有什么规则吗?,oop,rules,solid-principles,package-design,Oop,Rules,Solid Principles,Package Design,最近我听说OOP(Java)有9条规则。我只知道抽象、多态、继承和封装四个方面。OOP还有其他规则吗?这些是概念,不是规则。真的没有规则,只是要做决定,有些设计比别人好,有些比别人好得多:-) 尽管有很多指导原则:-)一些是特定于语言的(C++中充斥着它们),另一些是特定于OO的。太多,无法列出:-) 在我看来,重要的是: 松耦合,高内聚 编写可测试的类,并对其进行测试 仅在合理的情况下谨慎使用继承(更喜欢组合) 试着坚持开/关原则 (最重要的)亲吻 有很多东西需要扩展和补充:-) 编辑:我
- 松耦合,高内聚
- 编写可测试的类,并对其进行测试
- 仅在合理的情况下谨慎使用继承(更喜欢组合)
- 试着坚持开/关原则
- (最重要的)亲吻
编辑:我应该补充一点,您列出的规则不是OO独有的不确定是否有任何规则。对我来说,上面提到的这些东西更像是OO范例。我们遵循的建议很少,比如
- 关注点分离
- 每班单一责任
- 喜欢组合而不是继承
- 编程到接口
- 加上Billybob已经提到的
包应该既稳定又抽象。这些OO原则直接来自:
- 封装变化的内容
- 编程到接口,而不是实现
- 重组合轻继承
- 一个班级应该只有一个改变的理由(单一责任原则)
- 子类型必须可替换其基(Liskov替换原则)
- 类应开放以进行扩展,但关闭以进行修改(开放-关闭原则)
- 保持干燥(不要重复)
- 保持低调(确保类具有高内聚性和低耦合性)
- 并告诉另一个人(分离关注点)
顺便说一句,我刚才采访过你吗?你把问题抄错了…你的:)。顺便问一下,我们如何在非面向对象语言中实践继承、多态性等。我相信这四个都是面向对象的范例。第一个链接挂起。幸运的是,还有其他来源,即。这个答案综合了类设计原则、包内聚原则和包耦合原则。