zoukankan      html  css  js  c++  java
  • 设计模式总纲

    根据设计模式的参考书 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 中所提到的,总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。当然,我们还会讨论另一类设计模式:J2EE 设计模式。

    序号模式 & 描述包括
    1

    创建型模式
    这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

    创建型模式抽象了实例化过程。他们帮助一个系统独立于如何创建、组合和标识它的那些对象。

    一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。

    • 工厂模式(Factory Pattern)
    • 抽象工厂模式(Abstract Factory Pattern)
    • 单例模式(Singleton Pattern)
    • 建造者模式(Builder Pattern)
    • 原型模式(Prototype Pattern)
    2

    结构型模式
    这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。

    涉及到如何组合类或对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。

    一个简单例子采用多重继承方法将两个以上类组合成一个新类,如果这个类包含了所有父类的性质。

    这一模式尤其有助于多个独立开发的类库协同工作。另外一个例子是类的适配模式。一般来说,适配器使得一个接口与其他接口兼容,从而给出了多个不同接口的统一抽象。维持,类适配器对一个adaptee类进行私有继承。这样,适配器可以用adaptee的接口标识它的接口。

    它不是对接口或实现的组合,而是描述如何对一些对象进行组合,从而实现性功能的一些方法。因为可以在运行时改变组合关系,所以对象组合方式具有更大的灵活性,

    • 适配器模式(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)
  • 相关阅读:
    ThinkPHP 3.2.2 实现持久登录 ( 记住我 )
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 20 有效的括号
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 19删除链表的倒数第N个节点
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 18 四数之和
    Java实现 LeetCode 17 电话号码的字母组合
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9748920.html
Copyright © 2011-2022 走看看