个人随笔
目录
23种设计模式研究起始篇
2020-09-09 21:27:12

摘要:设计模式

终于要开始写Java的23种设计模式的博文;啦,虽然以前学过,但是因为都没有记笔记,也没有保存代码,导致现在早已经抛到九霄云外,这里开始23种设计模式的笔记整理,代码会上传到GitHub上面,方便以后查看,有需要的博友们也可以下载下来阅览阅览。毕竟是笔记,当然比不上网上的大神么,但是只要自己理解就可以啦。

一、设计模式的分类

设计模式总体来说分为三大类:创建型、结构型、行为型。

二、创建型

创建型模式共有下面五种

  1. 工厂方法模式(Factory Method):(普通工厂模式,多个工厂方法模式,静态工厂方法模式)
  2. 抽象工厂模式(Abstract Factory): 多个工厂类实现一个抽象工厂类 有利于扩展
  3. 单例模式(Singleton) :要考虑多线程问题,一般工厂就是单例
  4. 建造者模式(Builder): 建造一批对象
  5. 原型模式(Prototype) 克隆,深克隆要序列化用流

三、结构型

结构型模式共有下面七种

  1. 适配器模式(Adapter): 类的适配器 对象适配器 接口适配器
  2. 装饰器模式(Decorator) IO
  3. 代理模式(Proxy) 自己不会做,给别人做
  4. 外观模式(Facade) 门面(电脑启动:CPU,内存,硬盘)
  5. 桥接模式(Bridge) 数据库驱动
  6. 组合模式(Composite) 二叉树
  7. 享元模式(Flyweight) 数据库连接池

四、行为型

1、第一类 父类与子类
  1. 策略模式(Strategy) 算法比较多,就是提供很多算法,用户自选,多用在算法决策系统中,外部用户只需要决定用哪一个算法即可。
  2. 模板方法模式(Template Method) 这个比较有用,用户只需要实现关键方法即可。
2、第二类 两个类自检
  1. 观察者模式(Observer): 邮件订阅模型
  2. 迭代子模式(Iterator) :集合对象的遍历迭代Iterator
  3. 责任链模式(Chain of Responsibility) 我觉得Struts2的拦截器就应该是责任链模式
  4. 命令模式(Command) struts的请求
3、类的状态
  1. 备忘录模式(Memento) 我觉得应该只能备份String 基础类型,毕竟如果是引用的话一直是一个对象,没有切断联系
  2. 状态模式(State) QQ的状态 就是根据一些状态不同,执行不同的操作
4、通过中间类
  1. 访问者模式(Visitor) 一种操作业务已经既定,只要把访问者传过来即可 访问者只需要调用这种业务的方法即可
  2. 中介者模式(Mediator) 类与类之间的关系交个中介来维护,喵的有点像spring
  3. 解释器模式(Interpreter): 用来解释一些问题的比如正则表达式

五、设计模式六大原则

1、开闭原则(Open Close Principle)

对扩展开放,对修改关闭。为了实现这一点,我们需要使用接口和抽象类。

2、里氏代换原则(Liskov Substitution Principle)

任何基类可以出现的地方,子类一定可以出现。

3、依赖倒转原则(Dependence Inversion Principle)

直接对接口编程,依赖于抽象,而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

使用多个隔离的接口,比使用单个接口要好。目的是降低依赖,降低耦合。

5、迪米特法则(最少知道原则)(Demeter Principle)

一个实体应该尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立

6、合成复用原则(Composite Reuse Principle)

原则是尽量使用合成/聚合的方式,而不是使用继承

六、GitHub地址

https://github.com/suibibk/DesignPattern.git
长期维护

 247

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2