目录
设计模式梗概:
前言
该博客为我在学习设计模式中的一些总结,可能会有疏漏,望各位指出感激不尽!
全文使用C++编程语言(可能使用其他语言),当然,设计模式只是一种思想与编程语言没有太大的关系。
一、何为设计模式?
假设你是一个水系魔法师,你施展’Water ball’这个魔法时,你要经历“生成=>大小设定=>发射速度设定=>发射”这些步骤
class Waterball{
public:
Waterball(){...}
bool setsize(const int& size){...}
bool setspeed(const int& speed){...}
bool shoot(){...}
...
private:
int size;
int speed;
...
};
而这个水球事实上就可以被称为是一个类。当然一个水球不能达到一个很强大的效果,但如果它与其他魔法相互配合,就可以达到一个更加华丽、更加实用的魔法,类似于游戏中的连招。比如我们要生成一个’splash flow’魔法时,我们要将水魔法进行旋转压缩,此时我们需要和风魔法互相配合。达到更好的发射距离。
这种组合是前人交给我们的一种配合方法,正是解决水球发射距离限制的一种好的解决方法,这正如同组合魔法一般,为解决各种各样的问题,软件开发员在各种继承、组合、委托的结合下诞生出各式各样的解决方案叫设计模式。
小结:
设计模式是其他软件开发人员在软件开发过程中面临的一些问题的解决方案,这些解决方案是经过很多软件开发人员不断总结出来的
二、为何学习设计模式?
首先,设计模式是一种对某种情况下较为优秀的解决方案,是由各位有经验的软件开发员总结而得,在互相交流时也可以更好的交流。
比如,你想要和其他魔法师说‘splash flow’这个魔法,但你并不知道这个魔法的名称,你和他说:“这是一种把风魔法和水魔法相互结合的一种魔法实现”,当然由于这个例子简单,但如果魔法更为复杂的话,这似乎不是很合理吧。但如果你说‘splash flow’,那么他也能马上了解是什么魔法。
于是学好设计模式对于和同行之间的代码交流能够更加见简便,对于解决问题也有好的帮助。对于这一点对于编程好手还是编程菜鸟都是有着很好的提升。
总结
- 设计模式是其他软件开发人员在软件开发过程中面临的一些问题的解决方案,这些解决方案是经过很多软件开发人员不断总结出来的。
- 学好设计模式可以更好的与其他人交流沟通,对解决问题也起积极作用。
希望本文对你有用
维基百科中有对设计模式的描述可以拿来参考:
https://en.wikipedia.org/wiki/Software_design_pattern(需要VPN)