本文由 ImportNew – 唐小娟 翻译自 Javarevisited。如需转载本文,请先参见文章末尾处的转载要求。
面向对象理论是面向对象编程的核心,但是我发现大部分Java程序员热衷于像单例模式、装饰者模式或观察者模式这样的设计模式,而并没有十分注意学习面向对象的分析和设计。学习面向编程的基础(如抽象,封装,多态,继承等)是非常重要的,而运用它们来设计干净的模块也同样重要。我也认识很多不同等级的程序员,他们没有听过这些面向对象理论,或者不知道某个设计理论有什么好处,或者如何在编码中使用这些设计理论。
我们起码要设计出高度一致而且松散耦合的代码。Apache和Sun的源代码就是学习Java面向对象理论的非常好的例子。JDK遵循了一些设计模式,譬如在BorderFactory中使用工厂模式,Runtime类中使用单例模式,java.io中的许多类中使用装饰者模式。如果你真的对Java编程感兴趣,请先阅读Joshua Bloch的Effective Java,正是他参与编写了Java API。另外两本我喜欢的关于设计模式的书还有,Kathy Sierra等编写的的Head First Design Pattern和Head First Object Oriented Analysis and Design。这些书帮助理解面向对象理论,并帮助我写出更好的代码。