【设计模式笔记】总体分类整理

目录:

  各类设计模式简介html

  各类设计模式之间关系数据库

  不一样设计模式的对比 设计模式


 

设计模式分类与简介

1、建立型:关注对象建立过程;将对象使用与建立分离,使用对象时无需关心对象建立细节,从而下降系统耦合度,让设计方案易于修改和扩展;缓存

  简单工厂:   定义一个工厂类,能够根据输入的不一样返回不一样类的实例。      多线程

  工厂方法:  定义一个用于建立对象的接口,让子类决定实例化哪个类,Factory Method使一个类的实例化延迟到了子类。 框架

                         具体应用场景:一、日志记录器;二、数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。 jsp

  抽象工厂:  提供一个建立一系列相关或相互依赖对象的接口,而无须指定它们的具体类。ui

         具体应用场景: 一、QQ 换皮肤,一整套一块儿换。 二、生成不一样操做系统的程序。操作系统

  单例:    保证一个类只有一个实例,并提供一个访问它的全局访问点。线程

         具体应用场景:

          一、Windows 是多进程多线程的,在操做一个文件的时候,就不可避免地出现多个进程或线程同时操做一个文件的现象,因此全部文件的处理必须经过惟一的实例来进行。

          二、一些设备管理器经常设计为单例模式,好比一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。

  原型:    用原型实例指定建立对象的种类,而且经过拷贝这些原型来建立新的对象。

         具体应用场景:JAVA 中的 Object clone() 方法。
  建造者

         具体应用场景:一、去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是常常变化的,生成出所谓的"套餐"。 二、JAVA 中的 StringBuilder。

2、结构型:关注如何将现有类或对象组织在一块儿造成更强大的结构;

  适配器

    具体应用场景: 一、美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。 三、在 LINUX 上运行 WINDOWS 程序。 四、JAVA 中的 jdbc。
  桥接

    具体应用场景: 二、墙上的开关,能够看到的开关是抽象的,不用管里面具体怎么实现的。
  组合

    具体应用场景:在 JAVA AWT 和 SWING 中,对于 Button 和 Checkbox 是树叶,Container 是树枝。
  装饰

    具体应用场景:一、孙悟空有 72 变,当他变成"庙宇"后,他的根本仍是一只猴子,可是他又有了庙宇的功能。
  外观

    具体应用场景:一、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家眷以为很复杂,若是有提供接待人员,只让接待人员来处理,就很方便。
  享元

    具体应用场景:一、JAVA 中的 String,若是有则返回,若是没有则建立一个字符串保存在字符串缓存池里面。 二、数据库的数据池。
  代理

     具体应用场景: 一、Windows 里面的快捷方式。二、买火车票不必定在火车站买,也能够去代售点。 

3、行为型: 关注系统中对象的交互,研究系统在运行时对象之间的相互通讯与协做,进一步明确对象的职责。

  职责链

    具体应用场景:JS 中的事件冒泡。 三、JAVA WEB 中 Apache Tomcat 对 Encoding 的处理,Struts2 的拦截器,jsp servlet 的 Filter。
  命令

    具体应用场景:struts 1 中的 action 核心控制器 ActionServlet 只有一个,至关于 Invoker,而模型层的类会随着不一样的应用有不一样的模型类,至关于具体的 Command。
  解释器

    具体应用场景:编译器、运算表达式计算。
  迭代

    具体应用场景:JAVA 中的 iterator。
  中介者

    具体应用场景:机场调度系统;MVC 框架,其中C(控制器)就是 M(模型)和 V(视图)的中介者。
  备忘录

    具体应用场景:
  观察者

    具体应用场景:一、拍卖的时候,拍卖师观察最高标价,而后通知给其余竞价者竞价。
  状态

    具体应用场景: 一、打篮球的时候运动员能够有正常状态、不正常状态和超常状态。 二、曾侯乙编钟中,'钟是抽象接口','钟A'等是具体状态,'曾侯乙编钟'是具体环境(Context)。
  策略

    具体应用场景: 一、诸葛亮的锦囊妙计,每个锦囊就是一个策略。 二、旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。 三、JAVA AWT 中的 LayoutManager。
  模板方法

    具体应用场景:一、在造房子的时候,地基、走线、水管都同样,只有在建筑的后期才有加壁橱加栅栏等差别。 
  访问者

     具体应用场景:您在朋友家作客,您是访问者,朋友接受您的访问,您经过朋友的描述,而后对朋友的描述作出一个判断,这就是访问者模式。


 各类设计模式之间关系 

 


 

 不一样设计模式的对比 

相关文章
相关标签/搜索