Skip to content

什么是设计模式

设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计
模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

设计模式原则

  1. 开闭原则(Open Close Principle)

    尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化

  2. 里氏代换原则(Liskov Substitution Principle)

    使用的基类可以在任何地方使用继承的子类,完美的替换基类。

  3. 依赖倒转原则(Dependence Inversion Principle)

    依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类

  4. 接口隔离原则(Interface Segregation Principle)

    使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度

  5. 迪米特法则,最少知道原则(Demeter Principle)

    一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

  6. 合成复用原则(Composite Reuse Principle)

    尽量使用合成/聚合的方式,而不是使用继承。

设计模式的类型

总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。当然,我们还会讨论另一类设计模式:J2EE 设计模式。

  • 创建型模式集中于如何创建对象(旨在提供更多创建对象的灵活性)
  • 结构型模式则关注于如何组合类和对象以形成更大的结构,以及如何简化这些结构(描述系统各要素之间的关系)
  • 行为型模式的关注点在于对象之间的通信和职责分配(描述结构模型中对象的动态特征)。
  • 创建型模式

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

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

    关注对象之间的组合和关系,旨在解决如何构建灵活且可复用的类和对象结构

    • 适配器模式(Adapter Pattern)
    • 桥接模式(Bridge Pattern)
    • 过滤器模式(Filter、Criteria Pattern)
    • 组合模式(Composite Pattern)
    • 装饰器模式(Decorator Pattern)
    • 外观模式(Facade Pattern)
    • 享元模式(Flyweight Pattern)
    • 代理模式(Proxy Pattern)
  • 行为型模式

    关注对象之间的通信和交互,旨在解决对象之间的责任分配和算法的封装。

    • 责任链模式(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)
  • J2EE 模式

    这些设计模式特别关注表示层

    • 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)

如有转载或 CV 的请标注本站原文地址