一、设计模式
设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。
设计模式是软件开发人员在软件开发过程中面临的一般问题的
解决方案
。
这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结
。
使用设计模式是
为了重用代码、让代码更容易被他人理解、保证代码可靠性
。
个人认为设计模式是编程里面的
逻辑关系
和
编码套路
,就像武侠小说里面的武功秘籍,练完之后,可以解决很多问题。
我们要将设计者的思维融入学习和工作中,主要学习的是模式的使用场景、模式的意义、思维和思考的方式,学习它的套路。
下面有一个栗子:
技能名称 | 地震碎片Q | 雷霆拍击W | 大地震颤E | 势不可挡R |
---|---|---|---|---|
技能介绍 | 墨菲特发出一块大地碎片穿过他敌人处的地面,在碰撞时造成伤害并且偷取移动速度3秒。 | 墨菲特的攻击蕴含着如此惊人的力道以至于它引发了一次音爆。在接下来的数秒里,他的攻击会在他面前引发余波。 | 墨菲特锤击地面,放射出冲击波对目标造成基于他护甲值的魔法伤害,同时暂时降低目标攻击速度。 | 墨菲特自身高速冲向一个区域,对区域内的敌人们造成伤害和击飞效果。 |
连招方式(武功秘籍):
WREQ。先用W给自己加防御,然后大招R控制,之后E对方减去攻速,Q对方给自己加移动速度,这儿时候看自己的血量,多的话可以变A边等技能CD,血少的话就开始跑。
二、设计模式的三大类
2.1创建型模式
- 用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。
- 创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。
创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
2.2结构型模式
- 用于描述如何将类或对象按某种布局组成更多的结构。
- 可以将多个对象组织成更大的结构。可以从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。
- 目的:程序的维护和升级更新
结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
2.3行为型模式
- 用于描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责。
- 用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。
行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。