“每一个模式秒速了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次的使用该方案而不必做重复的劳动。”
一,什么是设计模式
设计模式,Design Pattern,是前人在软件设计和代码开发中通过对常见问题反复试验总结出的解决方案,是解决特定问题的一系列套路或模板,给后人提供了设计、编程、解决问题的思想。
软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。——C语言中文网
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。——菜鸟教程
二,设计模式的意义
设计模式的本质:面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。
优点:
- 提高程序员的思维能力、编程能力和设计能力
- 标准化程序设计、工程化代码编制
- 提高开发效率,缩短开发周期
- 代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强(大家都知晓的方法,不得谁看谁懂)
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。
助记:设计模式是前辈们代码设计经验的总结,是前人思想、设计的结晶,后人学习不得提高思维能力、编程能力和设计能力;设计模式更像一种规范、标准,按照其规定可使程序设计标准化、代码编制工程化;按照前人的经验不得提高开发效率和缩短开发周期;
三,设计模式的要素
设计模式一般有四个基本要素:
- 模式名称
- 问题
- 解决方案
- 效果
模式名称:助记名,尽可能的用来秒速设计模式的问题、解决方案和效果
问题:描述了设计模式要解决的什么问题
解决方案:提供设计问题的抽象秒速和怎么用一个具有一般意义的元素组合来解决问题,使设计模式可以应用于不同的场景
效果:对于评价设计选择和理解使用设计模式的好处和代价具有重要意义
四,设计模式的三大分类
1,创建型设计模式
与对象创建相关;
抽象了实例化过程;
一个类创建型模式使用继承改变被实例化的类,一个对象创建型模式将实例化微博给另一个对象;
创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。——百度百科
⑴抽象工厂
⑵生成器
⑶工厂方法
简单工厂模式+工厂方法模式+反射优化的工厂模式https://blog.csdn.net/qq_45043381/article/details/117880363⑷原型
⑸单例
2,结构型设计模式
如何组合类和对象以获得更大的结构;
采用继承机制来组合接口或实现;
有助于多个独立开发的类库协同工作;
结构型模式,借由一以贯之的方式来了解元件间的关系,以简化设计。——百度百科
⑹适配器
⑺桥接
⑻组合
⑼装饰
装饰器模式,从0到1https://blog.csdn.net/qq_45043381/article/details/123595510⑽外观
⑾享元
⑿代理
3,行为型设计模式
涉及算法和对象间职责的分配;
不仅描述对象或类的模式,还描述它们之前的通信模式;
行为类模式使用继承机制在类间分配行为,行为对象模式使用对象复合而不是继承;
行为型模式用来识别对象之间的常用交流模式并加以实现。如此,可在进行这些交流活动时增强弹性。——百度百科
⒀责任链
⒁命令
⒂解释器
⒃迭代器
⒄中介者
⒅备忘录
⒆观察者
⒇状态
(21)策略
(22)模板方法
(23)访问者
其实,对于设计模式的意义、要素、分类,并不是非常理解,以后通过对每一种设计模式的深入研究进行循序的、深入的理解吧!
往者不可谏 来者犹可追!