软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式主要是为了解决某类重复出现的问题而出现的一套成功或有效的解决方案。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。
软件设计模式源自于建筑学。Christopher Alexander
在著作《A Pattern Language: Towns, Buildings, Construction》
中把这些认同规律归纳为253个模式,对每一个模式(Pattern)
都从Context(前提条件)
、Theme
或Problem(目标问题)
、 Solution(解决方案)
三个方面进行了描述,并给出了从用户需求分析到建筑环境结构设计直至经典实例的过程模型。
设计模式一般包含模式名称、问题、目的、解决方案以及效果等要素。
UML
类图和核心代码来进行描述。设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。
狭义的设计模式一般分为三大类共计23种,但是随着技术的发展也一直在补充扩展。
类型 | 含义 | 种类 |
---|---|---|
创建型模式 | 关注对象的创建过程 | 单例模式、简单工厂模式、抽象工厂模式、工厂方法模式、原型模式、建造者模式 |
结构型模式 | 关注如何将现有类或对象组织在一起形成更加强大的结构 | 适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式 |
行为者模式 | 关注系统中对象之间的交互,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责 | 职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式 |
软件框架伴随着软件工程的发展而出现,所谓的软件框架,是提取了特定领域的软件的共性部分所形成的软件体系,它并不是一个成熟的软件,更像是一个半成品。开发者在框架之上,可以进行既可靠又快速的二次开发。
设计模式和软件框架在软件设计中是两个不同的领域:
软件架构是一个宏观的概念,它主要考虑软件的整体结构、层次划分以及不同部分之间的协作和交互等,它着眼于整体。
总体来说,软件架构可以由不同的框架和不同的设计模式,再加上特定的构件组合来实现。框架可以根据设计模式结合特定编程语言和环境来实现。设计模式就是解决单一问题的设计思路和解决方法。
原文:https://www.cnblogs.com/parzulpan/p/13496942.html