3 Star 3 Fork 4

中年英雄王叔叔 / headfirst

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

headfirst项目介绍

博客同步讲解:https://www.unclewang.info/category/note/headfirst/

项目介绍

《Head First设计模式》读书笔记代码实现
官网地址: http://www.wickedlysmart.com/head-first-design-patterns/ 里面直接有源代码

OO设计原则(面向对象)

  1. 找出应用中可能需要变化指出,把他们独立出来,不要和那些不需要变化的代码混在一起
  2. 针对接口编程,而不是针对实现编程
  3. 多用组合,少用继承
  4. 为了交互对象之间的松耦合设计而努力(松耦合让对象之间的相互依赖降到了最低,应对变化的弹性)
  5. OO最重要的原则——开放关闭原则,类应该对扩展开放,对修改关闭(代码应该如同晚霞中的莲花一样关闭,而晨曦中再次开放)
  6. 依赖倒置原则——要依赖抽象,不要依赖具体类
  7. 最少知识原则,只和你的密友谈话 不要过多的类相互依赖,这样修改的时候会有碎片感,不要利用朋友的朋友
  8. 好莱坞原则,别调用我们,我们会调用你,演员就不要管导演在想什么
  9. 单一责任原则,类应该只有一个改变的理由

笔记总结

  1. 策略模式:
    链接: http://www.unclewang.info/note/headfirst/448/
    题例:鸭子
    原则: a:找出应用中可能需要变化之处,把它们独立起来,不要和那些不需要变化。 b:针对接口编程,而不是针对实现编程。 c:多用组合,少用继承。
    策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

  2. 观察者模式:
    链接: http://www.unclewang.info/note/headfirst/453/
    题例:气象检测应用
    原则:为了交互对象之间松耦合设计而努力。
    观察者模式 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。

  3. 装饰者模式:
    链接:http://www.unclewang.info/note/headfirst/456/
    题例:星巴兹咖啡连锁店
    原则:类应该对扩展开放,对修改关闭。(开放-关闭原则)
    装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

  4. 工厂模式:
    链接: http://www.unclewang.info/note/headfirst/467/
    题例:披萨店
    原则:要依赖抽象,不要依赖具体类。(依赖倒置原则)
    抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

  5. 单件模式:
    链接:http://www.unclewang.info/note/headfirst/471/
    题例:无
    原则:无
    单件模式确保一个类只有一个实例,并提供一个全局访问点。

  6. 命令模式:
    链接: http://www.unclewang.info/note/headfirst/485/
    题例:电器自动化
    原则:无
    命令模式将“请求与接受者”一起封装成对象,对于中间的调用者只需要先找到命令,然后找到谁要执行命令再告诉他。

  7. 适配器和外观模式
    链接: http://www.unclewang.info/note/headfirst/508/
    题例:火鸡变鸭子、家庭影院
    原则:最少知识原则
    改变接口,可能是为了满足新期待,也可能是因为太麻烦,一站式服务

  8. 模板方法模式
    链接: http://www.unclewang.info/note/headfirst/513/
    题例:咖啡和茶、排序
    原则:好莱坞原则
    模板已经想好了结构是什么,模板已经规定好了1234,你只是根据具体情况实现某个1或者3就好

  9. 迭代器和组合模式
    链接: http://www.unclewang.info/note/headfirst/513/
    题例:餐馆不停的合并,女招待想直接看到全部菜单
    原则:单一责任原则
    组合模式通常内部的方法嵌入迭代器模式,两者共同想完成就是遍历不同的数据结构,如果不存在层次结构,直接每个内部实现迭代器,存在层次看成树形,使用组合模式

  10. 状态模式
    链接: https://www.unclewang.info/note/headfirst/530/
    题例:糖果售卖机有个流程
    原则:单一责任原则
    状态模式允许对象在内部状态改变时改变他的行为,而对象看起来好像修改了他的类。当遇到的问题可以归结到一个context上,而且还能有状态图,而且需要很多if判断的话,状态模式简直神器

  11. 代理模式
    链接: http://www.unclewang.info/note/headfirst/545/
    题例:糖果机远程监控、图片加载要时间、聊个天不能改别人的信息
    原则:
    代理分很多种,但是这一章信息量最大,用到了动态代理、rmi很多东西,顺着代理的思路还可以实现aop。

  12. 复合模式
    链接: http://www.unclewang.info/note/headfirst/607/
    题例:多种模式混在一起,MVC
    原则:
    很多优秀的威力强大的设计模式会同时使用多个设计模式,这就是模式的模式——复合模式。

  13. 与设计模式相处
    链接: http://www.unclewang.info/note/headfirst/630/
    组合模式通常内部的方法嵌入迭代器模式,两者共同想完成就是遍历不同的数据结构,如果不存在层次结构,直接每个内部实现迭代器,存在层次看成树形,使用组合模式

  14. 附录A 剩下的模式
    链接: http://www.unclewang.info/note/headfirst/644/
    包括剩下的9种模式,生成器、蝇量、访问者、备忘录等等

Comments ( 0 )

Sign in for post a comment

About

headfirst书籍官方源码以及自己看书写的代码 spread retract
Java
Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more
Java
1
https://gitee.com/whuwangxin/headfirst.git
git@gitee.com:whuwangxin/headfirst.git
whuwangxin
headfirst
headfirst
master

Search

101046 36f486cf 1899542 101055 4cb66026 1899542