HeadFirst设计模式学习之引入

【一】引入

image-20230917151949030

【二】书籍简介

【1】强大的写作阵容

  • 本书作者Eric Freeman;ElElisabeth Freeman是作家、讲师和技术顾问。
  • Eric拥有耶鲁大学的计算机科学博士学位,E1isabath拥有耶鲁大学的计算机科学硕士学位。
  • FHBert Bates是畅销的HeadFirst系列书籍的创立者,也是Sun公司Java开发员认证考试的开发者。

【2】内容风格

  • 本书的产品设计应用神经生物学、认知科学,以及学习理论,这使得这本书能够将这些知识深深地印在你的脑海里,不容易被遗忘。
  • 本书的编写方式采用引导式教学,不直接告诉你该怎么做,而是利用故事当作引子,带领读者思考并想办法解决问题。
    • 解决问题的过程中又会产生一些新的问题,再继续思考、继续解决问题,这样可以加深体会。
  • 作者以大量的生活化故事当背景
    • 例如第1章是鸭子
    • 第2章是气象站
    • 第3章是咖啡店
  • 书中搭配大量的插图(几乎每一页都有图),所以阅读起来生动有趣,不会感觉到昏昏欲睡。
  • 作者还利用歪歪斜斜的手写字体,增加“现场感”。
  • 精心设计许多爆笑的对白,让学习过程不会太枯燥。
  • 还有模式告白节目,将设计模式拟人化成节目来宾,畅谈其内在的一切。
  • 本书大量采用uML的class Diagram(Static Structure Diagram)。

【3】适用编程语言

  • 书中的例子程序虽然都是用JaVa编写,但是本书所介绍的内容对于任何00语言的用户都适用,包括c++和c#。
  • 每一章都有数目不等的测验题。每章最后有一页要点整理,这也是精华所在,我都是利用这一页做复习。

【三】大纲

  • 本书共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。

【1】前言

  • 前言先介绍这本书的用法

【2】第1章到第11章

  • 第1章到第11章陆续介绍的设计模式为
    • Strategy
      • 设计模式入门
    • Observer
      • 观察者模式
    • DecoratorAbstract Factory
      • 装饰者模式
    • Factory Method
      • 工厂模式
    • Singleton
      • 单例模式
    • Command
      • 命令模式
    • Adapter
      • 适配器模式
    • Facade
      • 外观模式
    • TemplateMethod
      • 模版方法模式
    • Iterator
      • 迭代器模式
    • Composite
      • 组合模式
    • State
      • 状态模式
    • Proxy
      • 代理模式

【3】第12章到第14章

  • 最后三章比较特别。
  • 第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式 (例如著名的MVC模式),作者称其为复合设计模式这是作者自创的名称,并非四人组的标准名词)
    • 复合模式
  • 第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题
  • 至于第14章则很快地浏览尚未介绍的设计模式,包括
    • Bridge
      • 桥接
    • Builder
      • 生成器
    • Chain of Responsibility
      • 责任链
    • Flyweight
      • 蝇量
    • Interpreter
      • 解释器
    • Mediator
      • 中介者
    • Memento
      • 备忘录
    • Prototype
      • 原型
    • Visitor
      • 访问者

【4】第1章的重要内容 -- OO原则

  • 第1章还介绍了四个OO基本概念(抽象、封装、继承、多态),而第1 章到第9章也陆续介绍了九个OO原则(Principle)。
    • 千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。
    • 很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。
    • 可以这么说:OO原则是我们的目标,而设计模式是我们的做法

【四】如何使用这本书

【1】引子

image-20230917152849169

【2】谁适合读这本书

  • 你懂Java吗?

    • 不要求精通,只要能看懂Java代码,理解其意思即可
    • 当然C#也可以
    • 我会使用Python进行复现
  • 你想学习、了解、记得并应用设计模式,就像在餐桌上交谈一样,而不愿意被动的听技术报告似的枯燥乏味的说教?

  • 那么我的笔记和这本书也许正如你所需要!

【3】谁暂时还不适合读这本书

  • 你是不是对 Java 一无所知?

    • 你不需要多么精通,只需要能看懂Java代码,甚至是你会C#,因为两者很像
    • 当然你除了上述的,连Python都看不懂的话,那我觉得你是有点问题的
  • 你是不是一个很棒的 OO 设计者/开发人员,正在找一本参考书?

  • 你是不是一个架构师,想找企业设计模式?

  • 你是不是对新鲜事物都畏手畏脚?

  • 你是不是觉得,如果 把 Java 组件都拟人化了,这样的一本书肯定不是一本儿正儿八经的技术书?

  • 那么我的笔记和这本书可能不太适合你。

【五】有意思的引入介绍

【1】我们知道你在想什么

image-20230917153734510

【2】元认知

image-20230917153920335

【2】做法

image-20230917153946573

【3】建议学习的方法

image-20230917154021243

posted @ 2023-09-18 17:03  Chimengmeng  阅读(34)  评论(0)    收藏  举报