面向对象设计模式

用户头像
陈皮
关注
发布于: 2020 年 06 月 22 日

设计模式的定义

面向对象的遵循设计原则的能够抽象出来的都是设计模式。

设计模式用来降低问题的复杂度,不能用来解决技术难点。

什么是设计模式?

  • 每一种模式都描述了一种问题的通用解决方案。这种问题在我们的环境中,不停地出现。

  • 设计模式是一种可重复使用的解決方案。

设计模式的四个部分

  • 模式的名称 - 由少量的字组成的名称、有助于我们表达我们的设计。

  • 待解问题 - 描述了何时需要运用这种模式,以及运用模式的环境(上下文)。

  • 解决方案 - 描述了组成设计的元素(类和对象)、它们的关系、职责以及合作。但这种解决方案是抽象的,它不代表具体的实现。

  • 结论 - 运用这种方案所带来的利和弊。主要是指它对系统的弹性、扩展性、和可移植性的。最终目的是高内聚、低耦合。

常见设计模式



| 模式 | 待解问题 | 元素 | |

| --- | --- | --- | --- |

| 策略 | --- | 1 客户程序 2 策略(接口) 3 策略实现 | --- |

| 观察者 | 通知观察者 | 1 观察者 1.1 观察者接口 2 被观察者 2.1 集合成员(哪些观察者在观察) | --- |

| 适配器 | 依赖倒置,根据高层定义接口适配不便实现的接口,重新定义函数同时复用已有函数。实现改变,接口不变。 | --- | 类适配、对象适配 |

| 简单工厂 | 隐藏 bean 创建细节 | 1 客户程序 2 策略接口 3 策略实现 4 Bean 工厂 | 是许多其他模式的基础,读取配置来创建 bean 解决了工厂模式的开闭原则问题 |

| 单例 | 在指定作用域内只实例化一个实例 | --- | --- |

| 组合 | 树 - 文件系统、菜单 | 1 策略 2 子组件 3 遍历自身 | --- |

| 模板 | --- | 1 模板方法 2 定义模板方法执行顺序 3 客户程序 实现修改具体的逻辑 | --- |

| 装饰器 | 对现有函数追加功能(编译期) | 1 统一接口 2 装饰者 3 被装饰者 | 装饰者和被装饰者通过构造函数传递,可以互相装饰 |

| MVC | --- | --- | --- |

| 代理 | 运行期动态赋能。 | --- | --- |

| --- | --- | --- | --- |

发布于: 2020 年 06 月 22 日 阅读数: 32
用户头像

陈皮

关注

还未添加个人签名 2018.04.26 加入

还未添加个人简介

评论

发布
暂无评论
面向对象设计模式