一、概要
要理解与记忆23种设计模式,有一定的难度,本文设想找到一种快速方法,帮你记下,并尽可能理解设计模式。
二、23种设计模式分类,不懂的人,直接跳过去,下面简单描述下
1、 创建性模式,5种(工建单原(元)-->工建单元)
1) 工厂方法模式,也称为简单工厂模式
2) 抽象工厂模式
3) 单例模式
4) 建造者模式
5) 原型模式
理解如下
Ø 上面5种设计模式,可以说全是工厂模式,都是如何new 出一个新的类对象
Ø 事实上,工厂模式全指是工厂方法,即一个方法内部可以找到new 某个具体类,并方法返回。
工厂方法,可以是静态方法、动态方法,分别称为静态工厂、动态工厂
一个工厂类,可以有多个工厂方法,每个方法都可以动态、静态
所谓工厂方法,或简单工厂的返回类是普通类类型,方法可以动态、静态
抽单工厂,工厂方法返回类型是抽象类类型,例如接口,方法可以动态、静态
上面两条便是工厂模式2种最重要的区别。
Ø 单例模式首先是工厂模式,是简单对象,表示某个特定运行环境,这个类的类对象永远只能一个实例,这个类就是单例类。例如servlet类,springmvc的控制器类。
Ø 建造者模式也是如何造一个类对象,只是这个类对象的要素比较多,生产环节比较多
Ø 原型模式,表示这个类对象是复制出来的,不是直接new 出来的,就例同一个人不是母亲生出来的,是用一个细胞克隆出来的。
2、 结构性模式,7种(适享代组装外桥 -->十香袋组装外桥)
表示类与类之间的结构关系
1) 适配器模式
变花样模式,变压器模式,电源适配器
2) 代理模式
图书的盗版就是代理模式,不可修改原书中的内容,只将作者姓名与外包装换下,这就是代理模式。
3) 装饰器模式
男朌女装就是装饰模式
一位学生考试成绩90分,有下面几种装饰
Ø 全班考第10名,好厉害哦,但不知道班上、年级有多少人
Ø 全班考第10名,但全年级只有1个班共10人,即例数第1名
Ø 全班考第45名,但全班50人中,最少有48名能考上清华北大。例如人大附14班,每年初中入学汇集了全北京最优秀的学生,每月不断打升降级,最后最优秀的在14班。
4) 组合模式
树枝,树叶,资源管理器
5) 享元模式
享元就是共享
6) 外观模式,facade
公司前台统一接待,无论外面谁来,先统一在前台分流处理
前台就是facade类
7) 桥接模式
jdbc实现,jdbc三个分支操作全部是抽象接口,但jdbc的具体实现是由各数据库具体实现的,java开发人员感觉不出来。
3、 行为型模式,11种,不描述了,太多了(命中观策解责备,迭状模访-->命中观测解责备,迭状模仿)
主要表示行为方式,事件处理等。
1) 模板方法模式
2) 策略模式
3) 命令模式
4) 观察者模式
5) 迭代者模式
6) 责任链模式
7) 备忘录模式
8) 状态模式
9) 访问者模式
10) 中介者模式
11) 解释器模式
三、记忆方法,记住下面3句话,就记住了23种设计模式
1、 创建性模式,5种
工建单原(元)-->工建单元
工厂建设单元,他们是
Ø 工厂模式2种
Ø 建造者模式
Ø 单例模式
Ø 原型模式
2、 结构性模式,7种
适享代组装外桥 -->十香袋组装外桥,分别是
Ø 适配器模式
Ø 享元模式
Ø 代理模式
Ø 组合模式
Ø 装饰模式
Ø 外观模式,facade
Ø 桥接模式
3、 行为型模式,11种
命中观策解责备,迭状模访-->命中观测解责备,迭状模仿,他们是
Ø 命令模式
Ø 中介者模式
Ø 观察者模式
Ø 策略模式
Ø 解释器模式
Ø 责任链模式
Ø 备忘录模式
Ø 迭代器模式
Ø 状态模式
Ø 模板方法模式
Ø 访问者模式
四、总结
23种设计模式记忆
工建单原-->工建单元
适享代组装外桥-->十香袋组装外桥
命中观策解责备,迭状模访-->命中观测解责备,迭状模仿