我一直在研究OOP已经有一段时间了,我对这个理论有了很好的把握.我阅读了关于OOP 的Head First书,虽然它强化了很多理论,但我发现案例研究有点微不足道.
我发现我每天都会将OOP原则应用到我的代码中,但我不确定我是否正确应用它们.我需要到达能够查看我的代码并知道我是否正确使用继承,我的对象是否足够内聚等等.
有没有人有任何好的建议(书籍,在线指南,博客,演练等),以便在开发可靠的OOP技能方面迈出下一步?
我主要在.NET(visual basic)工作,但我欢迎包含各种平台的建议.
阅读Martin Fowler的Refactoring,并将其应用到您自己的工作中.
它将引导您了解一系列软件代码的恶臭特征,这些特征描述了如何检测不正确构造的类,更重要的是,如何修复它们.
考虑一下设计模式.虽然它们似乎并不常用于企业应用程序(我已经看到它们在API和框架中更常用于嵌入到企业代码中),但它们可以应用于在很多情况下使软件更简单或更强大只有开发人员知道如何应用它们.
关键是首先要了解设计模式,然后根据经验学习如何应用它们.
有一本关于设计模式的Head First书很简单地教授这个概念,虽然如果你想要一本真正涵盖设计模式的书,请查看Gang of Four设计模式书,这基本上是设计模式的主流,是几乎每次提出这个话题时都会提到.
设计模式可以在某种程度上应用于任何面向对象的语言,尽管在某些情况下某些模式可能过度或过度工程.
编辑:
我也想补充一下,你应该看看代码完成2.它是软件开发领域非常有影响力的书.它涵盖了许多不同的概念和理论.每次读书都会学到新东西.这是一本很好的书,如果我每6个月到一年阅读一次,我会从不同的角度来看待它,这使我成为一个更好的程序员只需重新阅读它.无论你认为自己知道多少,这本书都会让你意识到你真正知道的有多少.这真是一本好书.我不能强调你应该拥有多少本书.
如果您已经掌握了基础知识,我相信只有经验才能让您更进一步.你说你不确定你是否正确地应用这些原则,但没有一种正确的方法.你今天写的代码,你将在6个月的时间内看到,并想知道你为什么这样写它,并且可能知道一种更好,更清洁的方法.我还保证,10年后,你仍然会学习新的技巧和技巧.不要太担心它,它会来,尽可能多地阅读,并尝试应用你在小块中阅读的内容.
我目前正在阅读以下一本书:
http://www.amazon.com/Applying-UML-Patterns-Introduction-Object-Oriented/dp/0131489062
在深入研究代码之前,我无法在学习现实,专业级,实用的方法来起草和应用结构良好的迭代设计策略方面强烈推荐本书.
我也读过" Head First "这本书,觉得我阅读它会好得多.
在拥有几年的工作世界经验后,我现在查看Craig Larman的书,我建议对我来说这是一个完美的"下一步".
无论您对UML符号有正面感受还是消极情绪,请不要让这影响您决定以任何方向购买该书(ISBN 0131489062).
标题中"UML"的突出性是误导性的.虽然作者确实使用并解释了UML符号,但这些解释非常适合于相关的设计讨论,并且本书在任何时候都不会像无聊的UML规范那样阅读.
实际上,这是直接从本书中引用的引用:
重要的是知道如何在对象中进行思考和设计,这是一种与了解UML符号相比非常不同且更有价值的技能.在绘制图表时,我们需要回答关键问题:对象的职责是什么?谁与它合作?应该采用哪些设计模式?比了解UML 1.4和2.0之间的区别更重要!
这本书有时候似乎是"与一位首席架构师或项目经理交谈".我的意思是,它假定读者对软件项目的规划和方向有很大的控制权.
尽管如此,即使您只对公司的一小部分项目和产品负责,我仍然会推荐这本书,并鼓励您对本书的建议应用一些"按比例缩小"的修改.