一些最佳的面向对象设计实践是什么?

23

我没有找到任何一个如此泛化的问题。

请发表您认为有用的面向对象设计规则。

7个回答

46

7
有趣的是,谷歌搜索后将我带到了这里,排名靠前。 - Suragch

18

我很多次推荐过 Head First 设计模式 这本书。

它让你了解GoF 设计模式(一本更高级的书,你也应该阅读),同时也为面向对象编程设计原则提供了良好的介绍。

enter image description here


2
+1 颗星给《Head First 设计模式》,我也推荐它。 - deovrat singh
1
@JørnE.Angeltveit 根据您的推荐,我刚刚购买了《Head First》这本书 - 我在网上看到了一些PDF文件,它看起来确实不错。谢谢。 - BenKoshy

12

其中还有其他几个原则:

  1. "好莱坞原则" ,指的是较低层次的模块不应该依赖于较高层次的模块。
  2. "优先使用组合而非继承" - 组合允许在运行时更改/添加行为,且更易于维护。
  3. "面向接口编程而非实现编程" - 总是使用抽象作为引用方式,而不是直接耦合到具体类。

我建议你也可以查看一下《Head First - OOAD》这本书。


“好莱坞原则”听起来像是“别打电话给我们,我们会联系你”的意思,但它更多地涉及到控制反转(例如反应器模式、观察者模式等)。尽管你提到的也很有用,但据我所知它只是依赖反转原则的一部分。 - raiks

4

4
只是一个建议,除了分享有用的补充链接外,为了让SO读者更好地理解你所引用的材料,花时间总结一些关键点也是很有帮助的。 - Peter Mularien
1
谢谢建议。我会记在心里的。 - Bane
1
链接失效!引用页面为空白。 - Adrien Renaud
你的链接已经失效了。你应该更新你的答案或者删除它。 - Ojonugwa Jude Ochalifu
我已经更新了帖子。 现在它引用了 Uncle's Bob 网站。 - Bane

2

阅读他人的代码并尝试设计类图。这将让你了解其他人如何通过解决问题来思考。
这对我很有帮助,特别是在使用框架时。


1

-1
在我看来,如果你想学习面向对象设计,那么你应该尝试使用Smalltalk语言进行编程练习,因为它是最早采用面向对象编程的语言之一。
现在我们有一个名为Squeak的开源替代品。正如我们的同伴所提到的,SOLID原则也可以给你关于面向对象编程的很好的理解。
祝你在面向对象编程的旅途中一切顺利。
你可以在Squeak on Web.上查看Squeak。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接