软件开发技术包含“招式”与“内功”,其中,编程语言,开发技术,著名框架能够认为是“招式”,而数据结构,算法,设计模式,重构,软件工程等则为“内功”。“招式”能够很快学会,可是“内功”的修炼须要更长的时间。对设计模式的学习会令“内功”大增,配合日益纯熟的“招式”,软件开发“功力”想必会达到一个新境界。下面来正式踏入修炼设计模式之旅。算法
模式是在特定环境下人们解决某类重复出现的问题的一套成功或有效的解决方案。
GoF(Gang of Four,简称GoF,分别是Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides)将模式的概念引入软件工程领域,标志着软件模式的诞生。软件模式是将模式的通常概念应用与软件开发领域,即软件开发的整体指导思想或参照样板。软件模式并不是仅限于设计模式,还包括架构模式,分析模式和过程模式等。
在软件模式中,设计模式是研究最为深刻的分支。设计模式用于在特定条件下为一些重复出现的问题提供合理的,有效的解决方案。编程
设计模式通常定义以下:设计模式
设计模式是一套被反复使用的,多数人知晓的,通过分类编目的,代码设计经验的总结,使用设计模式是为了可重用代码, 让代码更容易被他人理解而且提升代码的可靠性。
设计模式通常包含的要素:bash
其中关键要素为模式名称,问题,解决方案以及效果:微信
GoF设计模式有23个,模式分类能够按照用途或者处理方式进行分类,按照用途分类的话,能够分为:数据结构
根据处理方式分类,能够分为:架构
两种分类模式一般结合使用,好比单例模式是对象建立型模式。框架
若是以为文章好看,欢迎点赞。编程语言
同时欢迎关注微信公众号:氷泠之路。ide