最近有幸阅读O'Reilly的Head First Design Patterns,发现这本书的确是对Design Patterns的一种全新解读,虽然影印版阅读起来仍然不那么流畅,但是已经让我对Design Patterns有了进一步的认识,虽然接下来会很忙,但仍然计划抓紧时间把这本书学习一遍,以加深自己对Design Patterns的了解。
本书中没有照搬其他书籍对Design Patterns分类从工厂方式开始介绍的老套路,而是以一个程序员很常见的工作场景开始了Design Patterns的介绍和讨论(本书中介绍都是基本都是这样的引人深入的方法)。
截至目前(辛辛苦苦的读了7章英文),学习到的东西在这里做一个粗略的总结(以英文为准):
一、OO Principles:
1.Encapsulate what varies
2.Favor composition over inheritance
3.Program to interfaces,not implementations 看到这个原则让我想起James Gossing就曾经在别人采访中说过:如果再给他一次机会重头开发Java,那么他将去掉所有的抽象类而采用接口实现,不过他可不是对着这个原则来的,整个Patterns中都一直在告诉我们要拥抱变化,最好的方式就是解偶,而接口就是最好的解藕方式。
4.Strive for loosely coupled designs between objects that interact
5.Classes should be open for extension but closed for modification
6.Depend on abstractions.Do not depend on concrete classes
句句金句,需熟记于心,等有空的时候我再补充一些比较常见的场景以便于理解。
二、Design Toolbox
1.Strategy - defines a family of algorithms,encapthulates each one,and makes them interchangeable.Strategy lets the algorithm vary independently from clients that use it.
2.Observer - defines a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically.
3.Decorator - Attach additional responsibilities to an object dynamically.Decorators provide a flexible alternative to subclassing for extending functionality. (最常见的就是java.io包,尽管使用Decorator可能会使程序晦涩难懂,但是它仍然是使用子类来获得方法继承之外的另一个稳妥的编程手段)
4.Factory method - Define an interface for creation an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to the subclasses.(其中还包含一个Simple Factory,但是它并不是Patterns,而是一个可以帮助你将客户端与指定类解偶的方法)
5.Abstract Factory - Provide an interface for creating families of related or dependent objects without specifying their concrete classes. (Dependency Injection)
分享到:
相关推荐
Head First Design Patterns 中文版 带目录 设计模式经典书籍
又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ······ 你不想重新发明车轮(或者更差的是,没有充气车胎的轮子),所以你从设计模式中寻求...
Head First Design Patterns(中文版)设计模式 java。 Head First Design Patterns(中文版) 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除 设计模式 ...
head first design patterns-head first 设计模式的英文原版;高清英文原版,非扫描
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习, 这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为11个压缩包,绝对的物有所...
《HeadFirst Design Patterns》是设计模式领域中一本非常受欢迎的入门书籍,以其独特的教学方式深受读者喜爱。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决常见问题的经验和方法,使得开发者...
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习,这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为9个压缩包,绝对的物有所值...
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习, 这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为11个压缩包,绝对的物有所...
《Head First Design Patterns》是一本在软件开发领域广受好评的设计模式入门书籍。本书由Kathy Sierra与Bert Bates共同编写,采用了一种独特而富有创意的教学方法,使得复杂的概念变得容易理解。书中通过丰富的插图...
“Great code design is, first and foremost, great information design. A code designer is teaching a com- puter how to do something, and it is no surprise that a great teacher of computers should turn ...
这本书的部分章节,即"Pages from Head First Design Patterns (英文高清版)_part1.rar",可能涵盖了以下几个主要的设计模式: 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,...
《Head First Design Patterns》是设计模式领域中一本非常知名的书籍,尤其适合初学者入门。这本书以其独特的视觉风格和易于理解的讲解方式,帮助读者深入理解设计模式的核心概念和实际应用。Part2部分主要涵盖了...
《Head First Design Patterns》是一本深入浅出介绍设计模式的图书,由Eric Freeman、Elisabeth Freeman、Bert Bates和Kathy Sierra联合编写。本书结合认知科学原理和神经生物学研究,采用引导式教学方法,通过故事...
HeadFirst Design Pattern in C#
head first design patterns电子版本(第1部分)
软件设计模式中文版 &head; first python 。
本书作者Eric Freeman;ElElisabeth Freeman是作家、讲师和技术顾问。本书的产品设计应用神经生物学、认知科学,以及学习理论,这使得这本书能够将这些知识深深地印在你的脑海里,不容易被遗忘。...
《Head First Design Patterns》是一本深受开发者喜爱的设计模式教程,英文版的影印版本提供了清晰易读的阅读体验。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决问题的常见方法,旨在提高代码的...