GOF:
在1994年,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四人合著出版一本名为Design Patterns - Elements of Reusable Object - Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素)的书,该书首次提到了软件开发中设计模式的概念。
四位作者合成GOF(四人帮,全拼Gang of Four)。他们提出的设计模式主要基于以下的面向对象设计原则。
1.对接口编程而不是实现编程。
2.优先使用对象组合而不是继承。
设计模式的类型
总计23设计模式,这些设计模式可分为三大类设计模式:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。
另外还有JavaEE设计模式。
序号 |
模式&描述 |
包括 |
1 |
创建型模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式, 而不是使用new运算符直接实例化对象。这使得程序在判断针对 某个给定实例需要创建哪些对象时更加灵活。 |
工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) |
2 |
结构型模式这些设计模式关注类和对象的组合。继承的概念被用来组合接口和 定义组合对象获得新功能的方式。 |
适配器模式(Adapter Pattern) 桥接模式(Bridge Pattern) 过滤器模式(Filter、Criteria Pattern) 组合模式(Composite Pattern) 装饰器模式(Decorator Pattern) 外观模式(Facade Pattern) 享元模式(Flyweight Pattern) 代理模式(Proxy Pattern) |
3 |
行为型模式这些设计模式特别关注对象之间的通信。 |
责任链模式(chain of Responsibility Pattern) 命令模式(Command Pattern) 解释器模式(Interpreter Pattern) 迭代器模式(Iterator Pattern) 中介者模式(Mediator Pattern) 备忘录模式(Memento Pattern) 观察者模式(Observer Pattern) 状态模式(State Pattern) 空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) |
4 |
J2EE模式这些设计模式特别关注表示层。这些模式是有Sun Java Center鉴定的。 |
MVC 模式(MVC Pattern) 业务代表模式(Business Delegate Pattern) 组合实体模式(Composite Entity Pattern) 数据访问对象模式(Data Access Object Pattern) 前端控制器模式(Front Controller Pattern) 拦截过滤器模式(Intercepting Filter Pattern) 服务定位器模式(Service Locator Pattern) 传输对象模式(Transfer Object Pattern) |