代码拉取完成,页面将自动刷新
[TOC]
首先,看下各个模式的定义
通过一张表格总结其区别
抽象工厂模式 | 建造者模式 | 模板方法模式 |
---|---|---|
创建型模式 | ~ | 结构型模式 |
关注的是对象的创建 | 关注的是对象的创建 | 关注的是对象的方法结构 |
关注的是具体产品的创建 | 关注的是复杂对象的建造过程 | 关注的是算法框架 |
产品之间一般无关系 | 建造过程有关系,这些建造过程都是为创建一个复杂对象服务的,最终要到指挥者中进行组装,生成一个对象 | 各个算法之间有关系,模板类中定义好了算法骨架,具体算法在子类中实现 |
首先,看下两个设计模式的定义
通过一张表格总结其区别
适配器模式 | 桥接模式 |
---|---|
结构型模式 | ~ |
一种接口转换成另一种接口 | 实现与接口分开,可以独立变化 |
基类继承+接口实现 | 接口组合 |
首先,看下各个设计模式的定义
通过一张表格总结其区别
外观模式 | 代理模式 | 命令模式 |
---|---|---|
结构型模式 | ~ | 行为型模式 |
为子系统一组接口提供一个统一的高层接口 | 强调的是代替本人作业,减少对实际对象的操作 | 请求和执行分割开 |
通过组合聚合 | 通过组合聚合+接口实现 | 通过组合聚合 |
外观类不需要对被包装类中方法都使用到 | 代理类需要对被代理类中方法都实现 | 命令者不需要对接收者中方法都使用到 |
外观类可以包装多个类 | 代理类只代理一个类 | 一个命令者只执行一个请求,一个接收者可对应多个命令者 |
首先,看下两个设计模式的定义
通过一张表格总结其区别
观察者模式 | 中介者模式 |
---|---|
行为型模式 | ~ |
强调观察者改变时统一的通知 | 强调同事类之间的交互 |
观察者都会收到消息 | 同事类可以有选择进行交互 |
处理逻辑在发送方 | 处理逻辑在中介者 |
观察者和被观察者分离 | 同事类之间交互解耦 |
首先,看下两个设计模式的定义
通过一张表格总结其区别
策略模式 | 状态模式 |
---|---|
行为型模式 | ~ |
多个类区别不同的行为(算法) | 多个类区别不同的状态 |
一组方案或算法的相互替换,采取何种策略由外部条件决定 | 主要解决复杂逻辑处理的状态迁移,这个过程由对象内部条件决定 |
策略类不依赖上下文 | 状态类依赖上下文 |
首先,看下两个设计模式的定义
通过一张表格总结其区别
策略模式 | 模板方法模式 |
---|---|
行为型模式 | ~ |
采取何种策略由外部决定 | 采用何种实现由外部决定 |
定义一系列算法并封装,可相互替换,独立于客户变化 | 定义算法骨架,将一些步骤延迟到子类实现 |
利用多态 | 利用继承 |
偏重于解决算法多样性对代码结构冲击的问题 | 侧重于业务流程复杂但稳定(整体算法结构不变),而其中某些步骤变化相对剧烈(一些步骤的具体实现不同) |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。