在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。
设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类别或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
并非所有的软件模式都是设计模式,设计模式特指软件“设计”层次上的问题。还有其他非设计模式的模式,如架构模式。同时,算法不能算是一种设计模式,因为算法主要是用来解决计算上的问题,而非设计上的问题。
随着软件开发社区对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且沃德·坎宁安(Ward Cunningham)为此发明了WikiWiki用来交流设计模式的经验。
1994年,四位作者Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides出版了一本书,标题为设计模式-可重用的面向对象软件的元素,该书提出了软件开发中的设计模式的概念。
这些作者统称为四人帮(GOF)。这些作者认为,设计模式主要基于以下面向对象设计的原理。
编程到接口而不是实现
继承时的主要对象组成
根据设计模式参考书设计模式-可重用的面向对象软件的元素,共有23种设计模式,可分为三类:创造型,结构型和行为型。无涯教程还将讨论设计模式的另一类:J2EE设计模式。
S.N. | Pattern & Description |
---|---|
1 |
Creational Patterns 这些设计模式提供了一种在隐藏创建逻辑的同时创建对象的方法,而不是直接使用new运算符实例化对象。这为程序提供了更大的灵活性,可以决定需要为给定用例创建哪些对象。 |
2 |
Structural Patterns 这些设计模式涉及类和对象组成。继承的概念用于组成接口并定义组成对象以获得新功能的方式。 |
3 |
Behavioral Patterns 这些设计模式专门涉及对象之间的通信。 |
4 |
J2EE Patterns 这些设计模式专门与表示层有关。这些模式由Sun Java Center标识。 |
- Java 设计模式简介
- Java 工厂模式
- Java 抽象工厂模式
- Java 单例模式
- Java 建造者模式
- Java 原型模式
- Java 适配器模式
- Java 桥接模式
- Java 过滤器模式
- Java 组合模式
- Java 装饰器模式
- Java 外观模式
- Java 享元模式
- Java 代理模式
- Java 责任链模式
- Java 命令模式
- Java 解释器模式
- Java 迭代器模式
- Java 中介者模式
- Java 备忘录模式
- Java 观察者模式
- Java 状态模式
- Java 空对象模式
- Java 策略模式
- Java 模板模式
- Java 访问者模式
- Java MVC模式
- Java 业务代表模式
- Java 组合实体模式
- Java 数据访问模式
- Java 拦截过滤模式
- Java 服务定位模式
- Java 传输对象模式
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)