5本最佳的Java⾯向对象理论和设计模式的书籍(转)
本⽂由 - 翻译⾃ 。欢迎加⼊。转载请参见⽂章末尾的要求。
对于Java程序员来说,掌握⾯向对象的设计理论和⼀些是必备技能。就像我在另⼀篇博客中 提到的,不学理论就开始编程,就类似于学习⼀种语⾔⽽不学习字母表。市⾯上有很多有关⾯向对象理论的、设计模式的和最佳实践的,但只有很少的书真正值得我 们阅读。这⾥涉及两件事情,⼀个是⾯向对象理论,⼀个是设计模式。前者是基础,后者是在基于基础的最佳实践。我们应该先学习⾯向对象理论,再学习设计模 式,来看看这些理论是如何帮助我们解决⽇常碰到的问题的。我为⼤家选择了以下的五本书,帮助⼤家学习⾯向对象理论和设计模式。这些书从浅到深。J2EE的 设计模式和核⼼Java设计模式有⼀点点区别,但对Java程序员来说,核⼼的J2EE设计书籍也是学习的⼀个不错的选择。
有关Java设计模式的最好的五本书
以下是我学习⾯向对象和设计模式的书籍清单。设计模式是前⼈在解决某些相似问题时总结出的最佳实践。下⾯的五本书也适⽤于其他的⾯向对象语⾔。如果你知道其他优秀的设计模式的书籍,请推荐给我们。
1. Head First Design Patterns by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson
Head First Design Patterns
这是我读到的第⼀本Head First系列的书,也是第⼀本⾯向对象的书,在此之前,我不知道,我也不知道。在最初的⼏年开发中,我往往根据需求来编写代码,然⽽在更多的改动,更多的测试之后,往往引⼊更多的bug。多亏了我的好学精神,我了发现。 读了第⼀节之后,我感到⾮常的愉悦。可以说这本书很基础,但是其实学习基础⽐学习⾼级的东西更难。这本书真正做到了教会我们基础。它是每⼀个Java程序员必读的设计模式书籍,包括经验丰富的资深程序员。我也建议学习设计模式就应该从这本书开始。它不仅⽤清晰的⽅法解释了概念,还给出了很多图表,练习,测 试以及活⽣⽣的例⼦来帮助你思考和吸收。我是head first系列书籍的超级粉丝,就是因为和。Head First Design Pattern中有很多很棒的例⼦,任何想要学习⾯向对象基础的⼈(譬如接⼝,封装,多态,抽象等)都应该读读这本书。其中装饰模式(Decorator design pattern)和观察者模式(Observer design pattern)是⾮常好的两个章节。
2. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Design Patterns: Elements of Reusable Object-Oriented Software
这是, 它也是很多其他的⾯向对象设计模式书籍所借鉴的对象。如果关于设计模式的必读清单上没有
高级java程序员掌握技能这本书,那便是不完整的。出版了接近20年之后,这本书的主题依然 紧贴⾯向对象和设计模式理论。这本书围绕着设计⼀个⽂档编辑器的例⼦,分别解释了多种设计模式,如Creational patterns, Structural and Behavioral patterns。个⼈浅见,这本书是最好的设计模式书籍。对于每个Java程序员来说,这本书以及和都是必读书籍。你可以从亚马逊上购买这本书,有纸质版的,也有多媒体CD。
3. Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) by Alan Shalloway, James R. Trott
Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition)
就像多线程和并发⼀样,设计模式也不容易理解。其中最困难的部分就是理解之后应⽤到真实的例⼦中去。这就是为什么要多读⼏本Java的设计模式的 书,⾮常值得这么做。因为对于某些程序员来说,某个作者的写作风格⽐其他作者更易读。但是Joshua Bloch是个例外,他的写作风格被部分程序员都适⽤。《》这本书是学习⾯相对象设计模式的另⼀本书。虽然它也没有什么新内容,也介绍了⾯向对象理
论,UML以及装饰者模式、⼯⼚模式、观察者模式等设计模式。但是它对于很多初学者来说更通俗易懂。这本书⾥的例⼦也⾮常棒。
4. Software Architecture Design Patterns in Java by Partha Kuchana
Software Architecture Design Patterns in Java
这是这个主题的⼜⼀本书,它不仅涵盖了所有的⾯向对象基础(类,对象,继承,多态,抽象,封装),也包括了⼀些实⽤但不明显的细节,譬如私有⽅ 法,getter和setter⽅法,不可变对象,接⼝和监视器(monitor)。这本书还有⼀些更深⼊的⾯向对象的知识,如创建模式(Creational patterns), 集合模式(Collection patterns), 结构模式(Structural patterns), ⾏为模式(Behavioral patterns),和并发(Concurrency patterns)。对于⼯⼚模式和单例模式的讲述也很有趣。我喜欢这本书的另⼀个原因在于,有很多实⽤的问题和UML图表,这样不仅能更深⼊的理解问 题,也可以在实际应⽤⽅⾯有所帮助,实⽤也正是学习设计模式最重要的作⽤。最后这本书通过为⽹络主机公司设计软件的实例学习,来让我们将设计模式应⽤在真 实的场景中。简⽽⾔之,《》可以帮助你全⾯学习设计模式。
5. Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition) by Deepak Alur, Dan Malks, and John Crupi
Core J2EE Patterns
J2EE平台是Java程序语⾔的最流⾏的开发⽅法,它主要专注于解决⽹络和企业的问题,有⼀套⾃⼰的问题和需求。核⼼的J2EE模式描述了⼀些最 有⽤的J2EE世界的设计模式,譬如拦截过滤器(Intercepting Filters),前端控制器(Front Controller),MVC模式,数据访问对象模式(Data Access Obj
ect, DAO Pattern),视图协助器模式(View Helper Pattern)或视图解析器(View Resolver Pattern),服务定位模式(Service Locator Pattern)等。这本书将设计模式按照功能分类,分为表⽰层的设计模式、逻辑层的设计模式等。对于每⼀个需要编写⽹络应⽤和企业应⽤的Java和 J2EE程序员来说,这都是⼀本必读书籍。虽然现代的框架如Spring已经确保你在框架的层次接触到这些J2EE设计模式,譬如Spring MVC确保了MVC的使⽤,它也同时使⽤了前端控制器(DipatcherServlet)和视图解析器(ViewResolver)。同时Spring 框架还在容器层保证使⽤依赖注⼊和IOC。总之,不管你使⽤Spring MVC, Structs还是其他web框架,学习J2EE模式不仅能帮助你理解前⼈写的代码,也能让你写出更容易维护的代码。
除了以上的五本书,你可以看看Joshua Bloch的以及,你能知道更多⾯相对象的理论以及如何应⽤在Java编程中。是Java程序员必读书籍,因为它解释了很多Java库如何设计的原理。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论