设计模式介绍—她是谁,我们要去哪里?
雪夜里我送走的是谁?
那抛洒一地的白玫瑰!
天亮时终于找到御寒的一间小屋,
那心心相印的女子,她是谁? ——《雪夜》- 庞培
上一次做好了去旅行之前的准备,那么这次就应该说说到底我是和谁一起去旅行呢,和我一起出发的这个她,到底又什么的魅力呢?
模式 – #为了引出那个她,铺垫…
模式(Pattern),指事物的标准样式,百度百科上面说的,其实说白了模式就是我们现在说的套路!
- 模式 == 套路 (追MM也是有模式(套路)的,哈哈)
模式是一种思想,说大了特别的复杂和深奥,不管怎么样模式的使用可以解决特定场景下特定的问题!
准确表达:模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。
?Think?:模式是可以解决特定场景下特定的问题,那在追XD(心动)MM时候,我们可以用什么模式呢?请往下面看!
软件模式 - #还不是那个她
那么在软件中使用模式,就是软件模式(Software Pattern),用来解决软件世界中一些问题!因为是不同模式用在不同的场景之下,所以就会有很多模式出现,但是不管有出现多少准模式,分析其本质,发现还是要去遵循一些的原则,这样的模式才会更加的完美!
软件模式是在软件开发中某些可重现问题的一些有效解决方法,软件模式的基础结构主要由四部分构成,包括问题描述【待解决的问题是什么】、前提条件【在何种环境或约束条件下使用】、解法【如何解决】和效果【有哪些优缺点】。
设计模式 - #那个她出现了…#
这就是本次要一起旅行的那个她了,我初见她时就被她,两弯似蹙非蹙罥烟眉,一双似泣非泣含情目,所吸引了。
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。
设计模式一般包含模式名称、问题、目的、解决方案、效果等组成要素!
- 模式名称(Pattern Name):用一两个词描述问题、解决方案和效果,用于理解该模式和方便开发使用人员理解,绝大多模式根据功能或者结构进行命名!
- 问题(problem):何时使用,包括模式解决的问题和存在的问题!
- 解决方案(Solution):设计模式的组成成分,以及这些组成部分之间相互关系各自的职责和协作方式等,通常使用URL类图和核心代码描述!
- 效果(Consequence):模式的优缺点以及使用模式时应权衡的问题!
注:模式不是代码,而是针对设计问题通用的解决方案!模式是被发现,不是被发明。
GoF设计模式只有23个(23种,那她可以帮助我解决很多问题),每一个模式都为某一个可重复的设计问题提供了一套解决方案。
根据用途进行分类:
- 创建型(Creational)- 6种:用于描述如何创建对象。其中有一种不包含在GoF23中设计模式之中!
- 结构型(Structural)- 7种:用于描述如何实现类或对象的组合。
- 行为型(Behavioral)- 11种:用于描述类或对象怎么样交互以及怎么样分配职责。
根据是出来类之间关系还是对象之间关系分类:
- 类模式
- 对象模式
两种分类方式可结合使用:如单例模式:对象创建型,模板方法模式:类行为型模式。
详细类型分类如下 :
创建型模式(Creational Pattern)
- 单例模式(Singleton Pattern)(多例模式)
- 简单工厂模式(Simple Factory Pattern)【不在GoF中】
- 工厂方法模式(Factory Method Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 原型模式(Prototype Pattern)
- 建造者模式(Builder Pattern)
结构型模式(Structural Pattern)
- 适配器模式(Adapter Pattern)
- 桥接模式(Bridge Pattern)
- 组合模式(Composite Pattern)
- 装饰模式(Decorator Pattern)
- 外观模式(Facade Pattern)
- 享元模式(Flyweight Pattern)
- 代理模式(Proxy Pattern)
行为型模式(Behavioral Pattern)
- 职责链模式(Chain of Responsesibility pattern)
- 命令模式(Command Pattern)
- 解释器模式(Interpreter Pattern)
- 迭代器模式(Iterator Pattern)
- 中介者模式(Mediator Pattern)
- 备忘录模式(Observer Pattern)
- 状态模式(State Pattern)
- 策略模式(Strategy pattern)
- 模板方法模式(Template Method Pattern)
- 访问者模式(Visitor Pattern)
还有其他方式对设计模式进行的分类,这里就不做说明了!
√Answer√:上面提到?Think?追XDMM可以有哪些模式使用呢?这里简单说明一下在这23中设计中,还有有一些可以用,比如命令模式,MM说你去和她逛街(命令你)!假如你不是很帅的话,使用装饰模式,打扮一下自己,变成MM喜欢的类型,等等…
总结
学着使用设计模式的词汇吧,让我们能够听到大师说的东西,尽量能保持在一个理解层次上,快速成长!并且在以后的工作中能够设计出 弹性的、可维护、并且能够应付变化的系统!
知道了那个她,那么本次的旅行就马上要正在的开始了,在开始之前说明,我可能不会按照上面分类顺序进行旅行的顺序!
参考
《图解设计模式》
《HeadFirst 设计模式》
如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到,谢谢!
如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
祝你今天开心愉快!
欢迎访问我的csdn博客,我们一同成长!
不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!