大话设计模式

程杰

出版时间

2007-12-01

ISBN

9787302162063

评分

★★★★★

标签

编程

书籍介绍
这本书真正的价值,不在于它讲清了23个设计模式——不少读者坦言读完只是“混了脸熟”,甚至觉得“轻薄”。它打动人的是另一种东西:用大鸟与小菜的对话,把枯燥的代码重构演变成一个有起伏的小故事,让你看到“好设计是怎么一步步想出来的”。它不追求完整与精深,也常被拿来与《Head First》《设计模式之禅》比较而略逊,但正是这种放下身段的讲述方式,让设计这门课对非计算机专业的人变得可亲近。它适合那种曾被GOF原著劝退、想先建立直觉再回头啃原理的初学者;也适合愿意跟着代码一起犯错、再看着它被重构得清爽一点的读者。若你期待读完即精通,它或许会让你失望;但若你想先爱上“为什么这样设计才是好”的思考,它值得一试。
作者简介
程杰:高级软件工程师 & 高级培训讲师。从事软件开发一线工作近八年时间。曾在申银万国证券公司、上海杨浦区政府、朝华集团下属网游公司、香港晨兴集团等多行业项目开发中担任主程及项目负责人,有丰富的大中型软件开发经验,以及多年的软件设计与项目管理经验。曾任加拿大慧桥培训中心金牌讲师,主持.NET高级软件工程师的培训工作;早年从事高中数学教学工作,曾在江苏常州重点高中任教时获得过市教学一等奖,这些教学和培训经历让作者对如何以易懂的语言讲解艰深的技术知识有了深刻的理解。 本书作者集多年实际项目开发经验和丰富教学培训经验于一身,准确把握住编程初学者的视角,以浅显幽默的语言向读者诠释了面向对象设计模式的精髓。
AI导读
核心看点
  • 情景对话讲解23种设计模式
  • 通过代码重构演示设计演变
  • 降低门槛传授设计思维智慧
读者共识
  • 语言风趣幽默通俗易懂
  • 入门引导极佳但深度有限
  • 适合建立概念需进阶阅读
精彩摘录
  • "单例模式(singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。"
  • "策略模式(Strategy):它定义了算法的家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 -Disign Pattern"
  • "abstract与interface的本质区别:abstract class表示的是"is-a"关系,interface表示的是"like-a"关系"
  • "就一个类而言,应该仅有一个引起他变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。其实要云判断是否应该分离出类来,也不难,那就是如果你能够想到多于一个的动机云改主一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离。"
  • "开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。 这个原则其实是有两个特征,一个是说‘对于扩展是开放的‘,另一个是说’对于更改是封闭的‘。"
  • "策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合"
  • "策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法的公共功能 策略模式的优点是简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试 策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同实践应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性 在基本的策略模式中,选择所用具体实现的职责由客户端对象承担,并转给策略模式的Context对象,这本身没有解除客户端需要选择判断的压力,而策略模式与简单工厂模式结合后,选择具体实现的职责也可以由Context来承担"
  • "单一职责原则,就一个类而言,应该仅有一个引起它变化的原因 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。其实要去判断是否应该分离出类来,也不难,那就是如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离。 在编程时,我们要在类的职责分离上多思考,做到单一职责,这样写出来的代码才是真正的易维护,易扩展,易复用,灵活多样"
目录
第1章 代码无错就是优?——简单工厂模式 1
1.1 面试受挫 1
1.2 初学者代码毛病 2
1.3 代码规范 2
1.4 面向对象编程 4

显示全部
用户评论
这是一本有趣的书,且看作者取名字的艺术:“代理”变成“戴励”,“做嫁衣”变成“卓贾易”,“学雷锋”变成“薛磊风”,哈哈
还不错,算是原创书中的精品了,语言幽默,通俗易懂,有点儿Head First的味道。可惜是C#的,而且有些地方比较牵强,代码读着不很舒服。
只读了第一章,非常棒的书。
读了一半,翻看大半。不知作者技术功力如何,表达能力却实不敢恭维。例子牵强附会,对话罗嗦冗余,甚至有点贫。对于一个稍有设计模式概念的人来讲,有价值的也就是些UML图和少许C#(应该是C#)了。
这种题才看多了也疲劳
很有趣的一本入门书籍,虽然专业课里有软件设计模式和设计原则相关的内容,但都是一笔带过,没有深入展开的,而且都是理论性的学习,导致学了和没学一样,不能够很好的理解内容。《大话》虽然是十多年前的书,很多文字中透露出历史的味道,但这本书的例子都挺生动的,做到了有趣,还是挺易读的,读完对于这些设计模式的概念和优缺点基本上也都了解了。
老板让我了解下责任链 但是这本书好像讲的太浅了点。从头开始看,越看越觉得我是小菜,我老板是大鸟??? 装饰模式无法理解,衣服class去继承人class?感觉看了也不知道怎么用在写测试用例里面诶!读完了!知识浓度低,哈哈哈哈哈哈,看了个热闹,看的时候能大致理解意思,看完了再回忆发现好多个都不知道在说啥了……能用到的不多,也就单例、工厂吧,其他的想起来再查书好了。
我不是开发,只是个产品,包着学习的态度阅读,方便日后跪舔开发。 简化形象的比喻可以让外行人一定程度感受到代码的逻辑思路,但这种比喻,是很考验作者能力的,且过度的简化是否会造成歧义,我不知道,但依然感谢作者。
例子有点牵强附会,看完之后还是云里雾里
二刷了,的确对设计模式有了更具体的了解,基本上代码也完全可以轻松用c++改写。还是得有一定的c++基础的。
下载
收藏