设计模式
参考地址:https://www.cnblogs.com/bayu/p/8884626.html
设计模式类型:
一:创建 (创建类和对象 )
(1)类(类与子类关系 静态关系)
例子: 鼠标 :戴尔鼠标 ,华为鼠标 (单类产品)(一个对象 )
1.1:简单工厂: 工厂类(方法实现传入品牌得到输出对象) ,抽象鼠标类,具体品牌鼠标类,
1.2:工厂方法: 抽象工厂类 ,具体品牌工厂类,抽象鼠标类,具体品牌鼠标类,(抽象工厂的特殊情况 )
(2)对象(对象间关系 动态关系)
1.1:抽象工厂:(多个系列产品)一个对象 多个子系列 (多类产品对应)
例子: 鼠标 :戴尔鼠标 ,华为鼠标,戴尔键盘,华为键盘 (多类产品)
抽象工厂类 ,具体品牌工厂类,抽象鼠标类,具体品牌鼠标类,抽象品牌键盘类
参考链接:https://www.cnblogs.com/wyy1234/archive/2004/01/13/9986575.html
1.2:原型方法:拷贝原有对象完成创建 (深copy和浅Copy) (对象复制)
1.3:单例方法:(唯一一个对象构建)
1.4:建造者方法:一组对象的创建并按照一定算法构成;(一个大对象由几个复杂对象构成)
例子:电脑的组成:键盘,鼠标,显示器,主板
参考链接:https://www.cnblogs.com/zhili/p/BuilderPattern.html
二:结构(类和对象的组合)
(1)类
1.1 适配器模式
(2)对象
1.1 桥接模式:对象间排列组合 (is-a)
例子:图形形状和颜色 组合成不同的新画
1.2 组合模式:部分和整体
例子:部门和子部门或者员工
1.3 装饰模式:动态添加对象额外功能 (has-a)
例子:挑选服饰
1.4 外观模式:隐藏子系统统一接口
例子:开电脑时各个子系统一键启动
1.5 享元模式:重用对象,没有该对象就创造
例子:各种颜色的车,驾驶员可以不同
1.6 代理模式 :不能直接调用对象,例如远程调用
例子:害羞男孩送花
1.7 适配器模式:A类对象调用 B类对象方法
例子:苹果手机充电需要借助 安卓数据线充电功能
三:行为(类或对象的交互)
(1)类
1.1 解释器模式
例子:数字转换成中文
1.2 模板方法模式
例子:打游戏机过程一样
(2)对象
1.1 职责链模式
例子:公司的请假流程
1.2 命令模式
例子:下饺子
参考链接:https://www.cnblogs.com/PatrickLiu/p/7873322.html
1.3 迭代器模式:
例子:数组的foreach遍历
1.4 中介者模式:中介者对象减少对象间相互引用
例子:打牌
1.5 备忘录模式:某个对象的状态进行保存
例子:备份电话通讯录
1.6 观察者模式:对象间一对多关系
例子:微信订阅
1.7 状态模式:对象状态改变,行为发生改变
例子:订单状态
1.8 策略模式:
例子:各种工种薪水计算
1.9 访问者模式:增加对象新操作
例子:https://www.cnblogs.com/PatrickLiu/p/8135083.html