漫谈设计模式—从面向对象开始
基本信息
- 作者: 刘济华
- 出版社:清华大学出版社
- ISBN:9787302273028
- 上架时间:2011-12-29
- 出版日期:2012 年1月
- 开本:16开
- 页码:279
- 版次:1-1
- 所属分类:
计算机 > 软件工程及软件方法学 > 设计模式
编辑推荐
本书特色:
从面向对象的眼光分析问题,并引入模式。
给出J2EE实例,这些例子都是J2EE应用中被经常使用的。
类比相近的模式,使读者能够掌握它们之间的区别与联系。
融入软件开发设计原则,指导读者在实践中正确使用这些原则。
内容简介回到顶部↑
书籍
计算机书籍
模式引入计算机科学领域已经有20余年了,最初人们侧重于面向对象的设计,而现在已经应用于计算机领域的各个方面,它们对计算机产生了深远影响。
若想一本书涵盖所有模式,那么这本书将会非常庞大,以前的设计模式书籍专注于介绍设计模式,虽然读者了解了这些设计模式,但是仍然不知道如何合理地使用它们,往往导致读者为了使用设计模式而设计,而不是从问题出发,使用设计模式优雅地解决这些问题。
《漫谈设计模式—从面向对象开始》主要从最基本的设计模式入手,并结合一些j2ee开发过程经常遇见的技术和概念,你将全面理解这10多个设计模式,并在开发过程中,让你真正体会和思考面向对象编程的思想,也只有掌握这些,你才会能成为一位真正的设计专家。
《漫谈设计模式—从面向对象开始》不是一本面向对象和java语言的入门书籍,阅读对象主要是从事java语言的软件开发人员但不限于java语言的开发人员。
计算机书籍
模式引入计算机科学领域已经有20余年了,最初人们侧重于面向对象的设计,而现在已经应用于计算机领域的各个方面,它们对计算机产生了深远影响。
若想一本书涵盖所有模式,那么这本书将会非常庞大,以前的设计模式书籍专注于介绍设计模式,虽然读者了解了这些设计模式,但是仍然不知道如何合理地使用它们,往往导致读者为了使用设计模式而设计,而不是从问题出发,使用设计模式优雅地解决这些问题。
《漫谈设计模式—从面向对象开始》主要从最基本的设计模式入手,并结合一些j2ee开发过程经常遇见的技术和概念,你将全面理解这10多个设计模式,并在开发过程中,让你真正体会和思考面向对象编程的思想,也只有掌握这些,你才会能成为一位真正的设计专家。
《漫谈设计模式—从面向对象开始》不是一本面向对象和java语言的入门书籍,阅读对象主要是从事java语言的软件开发人员但不限于java语言的开发人员。
作译者回到顶部↑
目录回到顶部↑
《漫谈设计模式—从面向对象开始》
第一篇 模式介绍
第1章 谈面向对象和模式 3
1.1 什么是对象 4
1.2 面向对象的好处 5
1.3 重用 6
1.4 模式简史 7
1.5 什么是模式 8
1.6 学习设计模式的一些常见
问题 11
1.7 本章关键词 13
第2章 第1个模式——模板
方法(template method)
模式 15
2.1 从回家过年说起 16
2.1.1 dry(don't repeat
yourself) 18
2.1.2 变化+重复,如何
维护 20
2.2 模板方法(template method)
第一篇 模式介绍
第1章 谈面向对象和模式 3
1.1 什么是对象 4
1.2 面向对象的好处 5
1.3 重用 6
1.4 模式简史 7
1.5 什么是模式 8
1.6 学习设计模式的一些常见
问题 11
1.7 本章关键词 13
第2章 第1个模式——模板
方法(template method)
模式 15
2.1 从回家过年说起 16
2.1.1 dry(don't repeat
yourself) 18
2.1.2 变化+重复,如何
维护 20
2.2 模板方法(template method)
前言回到顶部↑
OOP(Object-Oriented Programming)早已不是一个新概念了,OOP在最近的20多年里发展得异常迅猛,特别是近10年里,OOP相关技术层出不穷,当大家热衷于使用这些新技术时,却不会使用OOP进行软件设计,进而发现新的技术并没有为大家带来任何好处。
很多老的开发人员从过程式开发转向面向对象的开发过程中,由于他们习惯过程式思维的开发,尽管他们使用的是OOP语言,但这并没有给他们带来太多帮助,反而使他们更加厌倦OOP软件开发,认为OOP没有想象中的那么便捷,很多地方没有使用过程式开发来的便捷,于是他们又退化为过程式的开发。
随着越来越多的新开发人员也加入了OOP的潮流,他们追求新的技术,学会使用各种工具和框架,却无暇顾及OOP进行开发设计的核心思想。虽然使用了新技术,代码质量并未提高,反而事与愿违。
当他们沉浸在新技术的使用和业务逻辑的编码实现时,未料到这些看似巧妙的设计导致了代码不易阅读、不易维护、不易扩展、不易测试、不易调试……。大家忙忙碌碌,但是项目进度缓慢,最终往往以失败而告终。归根结底,尽管使用了OOP语言开发其他一些新技术,但对OOP只限于粗浅的了解和相关语言语法使用上的理解,并不会真正使用OOP进行开发设计,以致使用时颠三倒四,未能真正享受到OOP和这些新技术带来的好处,有些新技术非但没有提供帮助,反而成为某些软件失败的罪魁祸首。那么,如何使用OOP进行开发设计呢?
OOP开发新手由于没有这方面的设计经验,在遇到问题时,往往诉求于逻辑的实现,在维护性和扩展性没有考虑或者少有考虑,导致代码乱七八糟,七零八散,随着开发的深入,最终在用户各种各样的需求面前无以应对。而有经验的OOP开发人员会灵活使用各种模式做出优秀的设计,编写的代码健壮性高,易于阅读、维护和扩展,可伸缩性强,开发成本也十分低廉。如果重用他们的开发经验,那么你就不需要在相同问题上重蹈覆辙,也能设计出优秀的软件。
市面上介绍设计模式的书籍非常多,它们一般仅仅给出GoF的23个最基本的设计模式的定义和一些简单的示例,大多数读者充其量只能了解它们,在使用上大打折扣。本书精心筛选出了一些我们经常在开发设计过程中使用到的模式,使用OOP的眼光分析它们,适时结合一些流行J2EE框架和技术,并从横向和纵向两方面扩展读者的思维,使读者对这些常用的模式有一个全面深刻的认识,也希望能够为正在使用这些框架和技术的读者带来帮助。
本书内容
作为一本技术书籍,严谨是必须的,作者参考了大量资料和文献,并在相关重要地方注明出处,做到有理有据,希望能够从专业角度和用户探讨设计模式与面向对象的设计。
严谨和可读性是没有冲突的,在开发人员之间交流,最好的方式莫过于优质代码了,本书给出了大量代码片段,在一些重要的地方使用黑体、加粗或斜体的字体,并做了详细解释,希望能够抛砖引玉,帮助读者制作出更加出色的代码。另外,本书还添加了很多图片,希望图文并茂,使这本书更加容易阅读。
本书主要分为五篇。
第一篇:模式介绍(第1章~第2章)
第1章讲述了面向对象与模式之间的关系和模式的简史;在第2章介绍了第一个简单的模式,模板方法模式,在这章,我们分析了代码重复所导致的“腐臭气味”,重复的代码是代码“臭味”中最糟糕的,在以后章节将会介绍各种模式来避免代码重复。
第二篇:创建对象(第3章~第6章)
使用OOP语言的语法创建一个对象并不复杂,例如在Java语言中使用new即可。但是随着系统变得越来越复杂,使用new直接创建对象会给系统造成很高的耦合度。创建模式可以封装对象实例化的过程,把使用对象的功能和实例化对象解耦开来,从而降低了耦合度。
在本篇最后,讨论了现在最流行的两个概念,IoC和DI,这二者是目前流行的轻量级容器的基础。
第三篇:构建复杂结构(第7章~第11章)
有时候,创建新的、更强功能的类并不需要重新编写代码,装配已有的类和对象反而更加快捷,也更加灵活。本篇讨论了一些常用的组装对象的模式,你将发现,构建大的、功能更强的对象,不是只有多层继承才能实现,组合往往是最有效的方式,本篇将会看到如何使用继承和组合创建复杂的大结构。
第四篇:行为模式(第12章~第14章)
我们在程序中经常需要封装一些对象的行为或者对象之间的通信,本篇将会讲述三个常用的行为模式:策略模式,状态模式和观察者模式,加上第2章介绍的模板方法模式,本书将一共讲述这四个常用的行为模式。
第五篇:终点还是起点(第15章~第17章)
很多老的开发人员从过程式开发转向面向对象的开发过程中,由于他们习惯过程式思维的开发,尽管他们使用的是OOP语言,但这并没有给他们带来太多帮助,反而使他们更加厌倦OOP软件开发,认为OOP没有想象中的那么便捷,很多地方没有使用过程式开发来的便捷,于是他们又退化为过程式的开发。
随着越来越多的新开发人员也加入了OOP的潮流,他们追求新的技术,学会使用各种工具和框架,却无暇顾及OOP进行开发设计的核心思想。虽然使用了新技术,代码质量并未提高,反而事与愿违。
当他们沉浸在新技术的使用和业务逻辑的编码实现时,未料到这些看似巧妙的设计导致了代码不易阅读、不易维护、不易扩展、不易测试、不易调试……。大家忙忙碌碌,但是项目进度缓慢,最终往往以失败而告终。归根结底,尽管使用了OOP语言开发其他一些新技术,但对OOP只限于粗浅的了解和相关语言语法使用上的理解,并不会真正使用OOP进行开发设计,以致使用时颠三倒四,未能真正享受到OOP和这些新技术带来的好处,有些新技术非但没有提供帮助,反而成为某些软件失败的罪魁祸首。那么,如何使用OOP进行开发设计呢?
OOP开发新手由于没有这方面的设计经验,在遇到问题时,往往诉求于逻辑的实现,在维护性和扩展性没有考虑或者少有考虑,导致代码乱七八糟,七零八散,随着开发的深入,最终在用户各种各样的需求面前无以应对。而有经验的OOP开发人员会灵活使用各种模式做出优秀的设计,编写的代码健壮性高,易于阅读、维护和扩展,可伸缩性强,开发成本也十分低廉。如果重用他们的开发经验,那么你就不需要在相同问题上重蹈覆辙,也能设计出优秀的软件。
市面上介绍设计模式的书籍非常多,它们一般仅仅给出GoF的23个最基本的设计模式的定义和一些简单的示例,大多数读者充其量只能了解它们,在使用上大打折扣。本书精心筛选出了一些我们经常在开发设计过程中使用到的模式,使用OOP的眼光分析它们,适时结合一些流行J2EE框架和技术,并从横向和纵向两方面扩展读者的思维,使读者对这些常用的模式有一个全面深刻的认识,也希望能够为正在使用这些框架和技术的读者带来帮助。
本书内容
作为一本技术书籍,严谨是必须的,作者参考了大量资料和文献,并在相关重要地方注明出处,做到有理有据,希望能够从专业角度和用户探讨设计模式与面向对象的设计。
严谨和可读性是没有冲突的,在开发人员之间交流,最好的方式莫过于优质代码了,本书给出了大量代码片段,在一些重要的地方使用黑体、加粗或斜体的字体,并做了详细解释,希望能够抛砖引玉,帮助读者制作出更加出色的代码。另外,本书还添加了很多图片,希望图文并茂,使这本书更加容易阅读。
本书主要分为五篇。
第一篇:模式介绍(第1章~第2章)
第1章讲述了面向对象与模式之间的关系和模式的简史;在第2章介绍了第一个简单的模式,模板方法模式,在这章,我们分析了代码重复所导致的“腐臭气味”,重复的代码是代码“臭味”中最糟糕的,在以后章节将会介绍各种模式来避免代码重复。
第二篇:创建对象(第3章~第6章)
使用OOP语言的语法创建一个对象并不复杂,例如在Java语言中使用new即可。但是随着系统变得越来越复杂,使用new直接创建对象会给系统造成很高的耦合度。创建模式可以封装对象实例化的过程,把使用对象的功能和实例化对象解耦开来,从而降低了耦合度。
在本篇最后,讨论了现在最流行的两个概念,IoC和DI,这二者是目前流行的轻量级容器的基础。
第三篇:构建复杂结构(第7章~第11章)
有时候,创建新的、更强功能的类并不需要重新编写代码,装配已有的类和对象反而更加快捷,也更加灵活。本篇讨论了一些常用的组装对象的模式,你将发现,构建大的、功能更强的对象,不是只有多层继承才能实现,组合往往是最有效的方式,本篇将会看到如何使用继承和组合创建复杂的大结构。
第四篇:行为模式(第12章~第14章)
我们在程序中经常需要封装一些对象的行为或者对象之间的通信,本篇将会讲述三个常用的行为模式:策略模式,状态模式和观察者模式,加上第2章介绍的模板方法模式,本书将一共讲述这四个常用的行为模式。
第五篇:终点还是起点(第15章~第17章)
媒体评论回到顶部↑
书如其人
Co0der具有典型的高级程序员的一切特质,在日常交流中,有时候让你很头痛,因为他常常会跟你较劲,你很难在一个论点上驳倒他。我细细阅读过他的书后,只有一个感觉,书如其人。这本书是Co0der对Java开发设计的总结,对目前仍旧在IT行业中作为底层“民工”而挣扎着的弟兄们有着极大的指导作用,能让这群人在技术上有一次不小的提高从而大有机会脱离“IT民工”的范围。总而言之,试着去阅读吧,效果一定比你想象的要好。
一个痴迷于代码的程序员
刘济华在我的印象里是个痴迷于代码的人,大部分空闲时间都用来读书和钻研,博览群书、涉猎甚广。经年的沉淀终于汇总成书,这本书的最大优点是——使用了程序员喜爱的编码方式(请在书中认真体会“喜爱的编码方式”)解释概念,贯穿了很多流行的技术,并进行广泛的类比,讲述严谨。
总结的力量
这本书我读了一遍,感觉很不错。之前也看过一些设计模式书,经常觉得千篇一律,浮于表面,这本书完全是作者根据自己的心得体会写出来的——把复杂的事情变简单,通俗易懂,很有功力。读这本书的过程,能够体会到作者解决问题的思路,与自己的想法进行比较之后,使之前萦绕在心里的很多疑惑得到解决,而且书中的例子都可以独立执行,可以借鉴来在工作中直接使用。那些对设计模式不得要领的朋友可以看一下,是本值得一读的好书。
博采众家之长并加以提高
作者是我在惠普同一个研发项目组的同事,他是我认识的众多研发团队成员中很突出的一位,对技术的热爱和对完美的执着加上对知识的渴望就是我对他的印象。这本书给我的感觉,是一本非常实用的设计模式书籍,它采用“娓娓道来”的方式,在大量国内外专家思想的精髓基础上,融入了作者独到的理解,再根据中国人的学习习惯加以归类和总结。总的来说,我想推荐这本书给学习设计模式的专业编程人员。
不打不相识
了解济华是在跟他的一次激烈争论之后,记得是一个关于设计的问题,那次争论之后我才真正体会到他对设计方面的理解。当济华找我帮他的新书作推荐时,我感到非常高兴,同时也非常荣幸!《漫谈设计模式》绝对是一本看了之后让你对设计模式有一个全新理解的书。衷心希望这本书能为大家在设计模式上带来质的飞跃!
阅书如阅人
记得第一次见刘济华是在新加坡出差,当时一个瘦瘦的、戴着眼镜的小伙儿在我面前,起初我担心他是否能够快速上手。慢慢接触中,发现他虽然年龄小(我常称他为小孩), 但能力不小:技术功底非常扎实、逻辑思维相当严谨,对一些技术问题有着独特的理解。通过阅读这本书,发现济华不光技术了得,语言组织功力也相当老练,让我对济华有了更深一步的了解。希望大家能够通过这本书了解他,读懂他,同时希望大家可以通过此书学有所成!
是程序员,也是作家
我认识Co0der已经两年了,但是我从来没想到他的另外一面——一位作家。我认为他的书籍不仅适合专家级别的IT读者,也适合入门级的读者以及介于这二者之间的IT读者,它有助于你对架构和设计模式有个全面的认识。我想推荐这本书籍给所有读者,希望你们能够阅读、理解以及实践其中所提及的方法,并在你的项目中获得成功。我希望Co0der一路顺风,再接再厉。
精妙的设计模式
济华是一个谦虚、沉稳、工作中追求完美并对技术有着执着追求的人。本书字里行间表现出严谨、一丝不苟的风格,结合作者自身工作中的经历和感悟,阐述了设计模式的概念和应用场景,希望读者朋友能从中体会到作者对设计模式选择和应用的精妙之处。
编程习惯与编程态度
和Co0der共事过两年,某一天他MSN上给我留言说他出了一本Design Pattern的书,我抱着好奇心下载下来,花了一天时间一口气读完,我才改变了设计模式图书千篇一律的印象。这本书除了阐述一些基本的OOP编程原则,我觉得最重要的是推荐了一种编程习惯和编程态度,配合精简而优雅的实例代码,我想必定会为那些陷入设计模式泥潭的初学者带来一些灵感。
Co0der具有典型的高级程序员的一切特质,在日常交流中,有时候让你很头痛,因为他常常会跟你较劲,你很难在一个论点上驳倒他。我细细阅读过他的书后,只有一个感觉,书如其人。这本书是Co0der对Java开发设计的总结,对目前仍旧在IT行业中作为底层“民工”而挣扎着的弟兄们有着极大的指导作用,能让这群人在技术上有一次不小的提高从而大有机会脱离“IT民工”的范围。总而言之,试着去阅读吧,效果一定比你想象的要好。
一个痴迷于代码的程序员
刘济华在我的印象里是个痴迷于代码的人,大部分空闲时间都用来读书和钻研,博览群书、涉猎甚广。经年的沉淀终于汇总成书,这本书的最大优点是——使用了程序员喜爱的编码方式(请在书中认真体会“喜爱的编码方式”)解释概念,贯穿了很多流行的技术,并进行广泛的类比,讲述严谨。
总结的力量
这本书我读了一遍,感觉很不错。之前也看过一些设计模式书,经常觉得千篇一律,浮于表面,这本书完全是作者根据自己的心得体会写出来的——把复杂的事情变简单,通俗易懂,很有功力。读这本书的过程,能够体会到作者解决问题的思路,与自己的想法进行比较之后,使之前萦绕在心里的很多疑惑得到解决,而且书中的例子都可以独立执行,可以借鉴来在工作中直接使用。那些对设计模式不得要领的朋友可以看一下,是本值得一读的好书。
博采众家之长并加以提高
作者是我在惠普同一个研发项目组的同事,他是我认识的众多研发团队成员中很突出的一位,对技术的热爱和对完美的执着加上对知识的渴望就是我对他的印象。这本书给我的感觉,是一本非常实用的设计模式书籍,它采用“娓娓道来”的方式,在大量国内外专家思想的精髓基础上,融入了作者独到的理解,再根据中国人的学习习惯加以归类和总结。总的来说,我想推荐这本书给学习设计模式的专业编程人员。
不打不相识
了解济华是在跟他的一次激烈争论之后,记得是一个关于设计的问题,那次争论之后我才真正体会到他对设计方面的理解。当济华找我帮他的新书作推荐时,我感到非常高兴,同时也非常荣幸!《漫谈设计模式》绝对是一本看了之后让你对设计模式有一个全新理解的书。衷心希望这本书能为大家在设计模式上带来质的飞跃!
阅书如阅人
记得第一次见刘济华是在新加坡出差,当时一个瘦瘦的、戴着眼镜的小伙儿在我面前,起初我担心他是否能够快速上手。慢慢接触中,发现他虽然年龄小(我常称他为小孩), 但能力不小:技术功底非常扎实、逻辑思维相当严谨,对一些技术问题有着独特的理解。通过阅读这本书,发现济华不光技术了得,语言组织功力也相当老练,让我对济华有了更深一步的了解。希望大家能够通过这本书了解他,读懂他,同时希望大家可以通过此书学有所成!
是程序员,也是作家
我认识Co0der已经两年了,但是我从来没想到他的另外一面——一位作家。我认为他的书籍不仅适合专家级别的IT读者,也适合入门级的读者以及介于这二者之间的IT读者,它有助于你对架构和设计模式有个全面的认识。我想推荐这本书籍给所有读者,希望你们能够阅读、理解以及实践其中所提及的方法,并在你的项目中获得成功。我希望Co0der一路顺风,再接再厉。
精妙的设计模式
济华是一个谦虚、沉稳、工作中追求完美并对技术有着执着追求的人。本书字里行间表现出严谨、一丝不苟的风格,结合作者自身工作中的经历和感悟,阐述了设计模式的概念和应用场景,希望读者朋友能从中体会到作者对设计模式选择和应用的精妙之处。
编程习惯与编程态度
和Co0der共事过两年,某一天他MSN上给我留言说他出了一本Design Pattern的书,我抱着好奇心下载下来,花了一天时间一口气读完,我才改变了设计模式图书千篇一律的印象。这本书除了阐述一些基本的OOP编程原则,我觉得最重要的是推荐了一种编程习惯和编程态度,配合精简而优雅的实例代码,我想必定会为那些陷入设计模式泥潭的初学者带来一些灵感。







点击看大图


加载中...
