程序员书库(ID:OpenSourceTop) 编译链接:https://javarevisited.blogspot.jp/2013/06/5-must-read-books-to-learn-object.html
对于任何一个Java开发人员来说,必须学会面向对象的设计原则和各种设计模式的知识。但有一些关于面向对象设计原则、设计模式和最佳实践的书籍,只有少数几本书能做到真正在讲解这方面内容。
设计原则和设计模式,设计原则是基础,设计模式是基于这个基础的最佳实践。首先应该学习面向对象的理论原则,然后学习设计模式,看看再来学习这些原则是如何被用来解决日常问题的。
我收集了5本书的清单,用于学习Java中面向对象的编程基础知识和设计模式。 这些书籍由浅入深。J2EE设计模式与核心Java设计模式稍有不同,但对于Java开发人员同样重要,核心的J2EE模式书籍不错的选择。
1. 《深入浅出设计模式》
![692fc0e0fd8cccd9df4580da3cfe1ecb.png](https://i-blog.csdnimg.cn/blog_migrate/33754f46225e147d57005f9485fa14c6.jpeg)
这是我读的第一本 Head First 系列的第一本书,在此之前,我不知道什么时候使用抽象类或接口,或者为什么组合比继承更好。在软件开发的最初几年,我通常会对每个特性和需求来进行编码,在完成更多的更改、更多的测试之后发现引入更多的bug。
后来由于我的阅读兴趣,我发现了《深入浅出设计模式》,在读完第一章后,我非常激动。可以说这本书的内容是非常基本的,但是只有掌握了基础知识才能更快学习更先进的东西。对于任何Java开发人员,包括有经验的和资深的开发人员,都必须阅读关于面向对象设计模式的书籍。我甚至建议可以从这本书开始学习设计模式。它不仅清晰地解释了概念,还提供了大量的图表、练习、测验和实际案例,让你思考和学习。
我是head first系列书籍的超级粉丝,无论是Head First Java还是Head First Design Pattern都非常不错。Head First Design Pattern中有很多很棒的例子,任何想要了解继承,封装,多态,抽象等面向对象基础知识的人都应该读读这本书。其中装饰模式(Decorator design pattern)和观察者模式(Observer design pattern)的内容都讲述的很棒。
2. 《设计模式》
![c791c295bb6a6f94c847cf76afb30a7e.png](https://i-blog.csdnimg.cn/blog_migrate/7554fb21a3f72a9bd9195329cce30430.jpeg)
本书是四人帮经典的(GOF)设计模式书,迄今为止编写和发布的许多面向对象设计模式书籍都是借鉴这本书。任何必须阅读的Java设计模式书籍清单中没有出现这本书,都是不完整的。近20年来,本书仍然贴合当下的面向对象和Java模式设计。
本书通过一个设计文档编辑器的例子,来解释各种设计模式,例如Creational patterns, Structural and Behavioral patterns。恕我直言,个人认为这是设计模式中最好的书籍之一,也是任何Java开发人员必读的书籍之一,你可以从亚马逊购买这本书,它分为精装版本,平装版和多媒体CD版。
3. 《Design Patterns Explained: A New Perspective on Object-Oriented Design 》
![487212ae20f2c4e3bad668772c00615d.png](https://i-blog.csdnimg.cn/blog_migrate/59f133d6d4783db109094bdc56883157.jpeg)
与多线程和并发一样,设计模式也不易理解。最困难的部分是足够理解之后把它用到现实生活的例子中去,这就是为什么有时最好使用多本书来学习Java设计模式的原因。因为不同的作者的写作风格和描述手法各有不同。有些程序员发现某个作者的书比其他人更好理解,而Joshua Bloch是唯一的例外,他的书适合大多数Java开发人员。
设计模式:是学习面向对象设计模式的一本书。虽然它也解释了OOPS原则,UML和设计模式,如装饰者模式,工厂模式或观察者设计模式,但它的解释方式对于许多初学者来说可能更容易理解。这本的例子也很好。
4. 《Software Architecture Design Patterns in Java》
![8e18fb25925946e24e5754b27bf7479e.png](https://i-blog.csdnimg.cn/blog_migrate/53760c4bb365745a1a586fc821e70f51.jpeg)
这是关于面向对象和Java设计模式的另一本好书,它不仅涵盖了基本的面向对象原则,如类,对象,继承,多态,抽象和封装,还涵盖了很实用但不明显的细节,例如私有方法,getter和setter,不可变对象,接口和监视器。本书还介绍了大量设计模式,例如创建模式,集合模式,结构模式,行为模式和并发模式,它涵盖了工厂设计模式和单例模式,阅读起来非常有趣。
它书中的案例和UML图表也是我推荐它的一大原因,它不仅有助于读者更深入的理解知识点,而且还能确保读者看完能够学以致用,这对学习任何设计模式来说都是最重要的。最后,他们还有一个针对虚拟主机公司设计软件解决方案的案例研究,它可以让您真实地在现实世界中识别和应用设计模式。简单来说,Java中的软件体系结构设计模式几乎涵盖了关于Java设计模式的所有知识。
最后,他们有一个为web托管公司设计软件解决方案的案例,让读者在实际案例中应用设计模式。简而言之,这本书几乎包含了所有你需要了解的关于Java设计模式的知识。
5.《J2EE核心模式》
![a7ae5f09aa34fe5df42d3e77842fb3f3.png](https://i-blog.csdnimg.cn/blog_migrate/6f53ecdd658c73c0b4b1043bda18507e.jpeg)
J2EE平台是使用Java编程语言最流行的开发方式,由于它专注于Web和企业解决方案,因此它有一系列自己的需求原则。核心J2EE模式解释了J2EE世界中最有用的一些设计模式,例如拦截过滤器,前端控制器,MVC模式,数据访问对象或DAO模式,视图协助器模式(View Helper Pattern)或视图解析器(View Resolver)模式,Service Locator模式等。
本书根据设计模式的功能划分,例如表示层的设计模式,业务层的设计模式等。这是任何Java J2EE开发人员的必读书籍。尽管像Spring这样的现代框架可以确保你在框架级别遵循这些J2EE设计模式,例如Spring MVC确保了MVC的使用,它也同时使用了前端控制器(DipatcherServlet)和视图解析器(ViewResolver)。Spring框架,也让你在容器级别使用了依赖注入和IOC。话虽如此,无论你使用Spring MVC,Struts还是任何其他Web框架,对这些J2EE模式的了解都会帮助你了解代码以及创建更容易维护的解决方案。
6.《Real World Java EE Patterns》
![aab94bc4332715b85ef6b4f057532602.png](https://i-blog.csdnimg.cn/blog_migrate/9d74edecd810ca3345a1f86379d5379a.jpeg)
这本书是我们的读者推荐的。他说:“你学习Java EE模式你更应该阅读的书是Adam Bien的《Real World Java EE Patterns》,他会向你解释为什么你不应该再编写自己的DAO层。“ 我读了几个章节之后,觉得这位读者说的对,这是关于Java EE模式内容的最新书籍,也是Java EE开发人员必读的书籍之一。
除了这5本书之外,你还可以看看Joshua Bloch的《Effective Java 2nd Edition》以及《Head first object oriented analysis and design》。Effective Java是任何Java程序员都必须阅读的,因为它解释了许多Java库本身的实用原理。