一、设计模式概念
设计模式是一套被反复使用、多数人知晓、经过分类编目的优秀代码设计经验的总结。使用设计模式的目的就是为了提高代码的重用性、增强代码的可靠性、使代码更容易被人所理解。设计模式使代码编制真正工程化,是软件工程的基石。在面对对象编程语言中,如JAVA,设计模式向我们提供了一套可复用的面向对象技术。
Java设计模式贯彻的原理是:面向接口编程,而不是面向实现。其目标原则是:降低耦合,增强灵活性。
二、设计模式要素
描述设计模式需要一定的格式,可以采用的格式有很多,如GoF格式和Alexander格式。在不同的格式中,虽然有一些细节上的不同,但设计模式英爱包含以下几个要素。
-模式名称
一个好的名称可以简洁而有效的描述设计模式的问题、解决方案和效果。一个模式必须要有一个简单准确而又有意义的名字。好的模式名称方便设计人员之间的交流与讨论。
-问题
-环境或初始环境
-解决方案
-效果
-举例
-莫态环境
-推理
-其他有关模式
-已知的应用
三、设计模式分类
常用的设计模式可以分为23种,三大类,分别为:创建型(5)、结构型(7)、行为型(11)。
1.创建型
创建型模式是用来创建对象的模式,它将实例化的过程抽象,帮助一个系统独立于其关联对象的创建、组合和表示方式。所有的创建型模式都有一以下两个功能:
-将系统所使用的具体类的信息封装起来。
-隐藏实例过程中的具体实现细节,只提供它们共同的接口。
常见的创建型设计模式有下列几种:
单例模式(Single Pattern)
工厂方法模式(Factory Pattern)
抽象工厂模式(Abstract Factory)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
2.结构型
顾名思义,结构型模式讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象实现新的功能(对象结构型模式)。
常见的结构型设计模式有下列几种:
代理模式(Proxy)
装饰模式(Decorator)
适配器模式(Adapter)
组合模式(Composite)
桥梁模式(Bridge)
外观模式(Facade)
享元模式(Flyweight)
3.行为型
行为型模式关注的是对象的行为,用来解决对象之间的联系问题。
常见的行为型设计模式有下列几种:
模板方法模式(Template Method)
命令模式(Command)
责任链模式(Chain of Responsibility)
策略模式(Strategy)
迭代器模式(Iterator)
中介者模式(Mediator)
观察者模式(Observer)
备忘录模式(Memento)
访问者模式(Visitor)
状态模式(State)
解释器模式(Interpreter)