前言:
学习一个新的材料时,一脸晕乎,总会想着他们是什么,有什么作用和意义呢,设计模式的学习也不例外,下面通过几方面对设计模式进行再认识;
What ?
设计模式是一套被反复使用、多数人知晓的、经过分类、代码设计经验的总结集结而成,是软件开发人员在软件开发过程中面临的一般问题的解决方案;
Why ?
站在巨人的肩膀上更好的帮助我们学习,生活、编程,那么设计模式就是这样的一个巨人,合理适时的使用设计模式,可以避免代码重复,增加代码的复用性,让他人更容易理解和看明白我们的代码和逻辑思维,解决问题;
- 公用平台
设计模式提供了一个标准的术语系统,具体到特定场景,便于复用成功的设计和体系结构;
- 问题解决
设计模式发展已久,是前人经验的累积,每一个模式都有相应的原理与场景与之相对应,是问题得以解决的核心方案,帮助我们更好的实现编程;
How ?
1、原则:【设计模式】-六大原则
2、分类:
根据各个模式不同的用途将23种设计模式分为三类,创建型模式、结构型模式、行为型模式;
- 创建型模型—形成,对象创建
模式 | 认识 |
---|---|
工厂模式 | 对象接口创建,类的实例化延迟到子类 |
抽象工厂模式 | 创建相互关联或依赖的类,无需指定具体类 |
单例模式 | 提供一个访问全局点,一个类只有一个实例 |
原型模式 | 原型拷贝,拷贝原型来创建新的对象 |
建造者模式 | 复杂对象构建分离,同过程不同表示 |
- 结构型模型—类与对象的组合
模式 | 认识 |
---|---|
外观模式 | 为子系统中一组接口提供一致对外接口 |
组合模式 | “整体与部分”层次结构, |
适配器模式 | 类的转换,使原本不能兼容的接口可以一起工作 |
桥接模式 | 抽象与实现部分分离 |
代理模式 | 通过为对象提供代理控制对象访问 |
装饰模式 | 为对象动态添加额外职责 |
享元模式 | 共享技术支持大量粒度对象 |
- 行为型模式—对象之间通信
模式 | 认识 |
---|---|
策略模式 | 算法封装 |
模板方法模式 | 定义操作算法骨架,在不改变算法结构前体下,在子类中实现 |
命令模式 | 对象封装,将请求封装为对象 |
迭代器模式 | 对象遍历,不关注对象内部表示 |
解释器模式 | 给定语言定义解释器解释语言 |
观察者模式 | 一对多的依赖关系,观察者与被观察者都依赖抽象而不依赖与具体 |
备忘录模式 | 保存细节封装在备忘录中,且细节更改时不影响客户端 |
中介者模式 | 用一个中介对象封装一系列的对象交互,独立改变 |
职责链模式 | 对象请求处理 |
访问者模式 | 不改变元素类前体下,对对象结构中元素操作 |
状态模式 | 对象内在状态改变时允许行为改变 |
小结:
物极必反,模式的运用也不例外,了解他们不同的用途,精准应用更好的帮助我们开发,现在了解的还是尚浅,希望在之后的实践中一点点了解设计模式的无限魅力;