博客
关于我
设计模式
阅读量:261 次
发布时间:2019-03-01

本文共 2162 字,大约阅读时间需要 7 分钟。

设计模式

在软件开发中,设计模式是一种解决常见问题的有效方法,它提供了一系列可重复使用的解决方案。以下是几种常见的设计模式及其分类:

创建型模式

创建型模式关注对象的创建过程,隐藏了对象的创建逻辑,用户通过接口创建对象,而不是直接使用new关键字。常见的创建型模式包括:

  • 工厂模式(Factory Pattern):通过工厂类创建对象,AbstractFactory 和 FactoryMethod 为核心接口。
  • 抽象工厂模式(Abstract Factory Pattern):扩展工厂模式,提供多个工厂类,支持不同的产品线。
  • 单例模式(Singleton Pattern):确保一个类只有一个实例,可以通过 ThreadLocal 或 Enum 实现。
  • 建造者模式(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 Method Pattern):提供一个算法骨架,允许子类扩展。
  • 访问者模式(Visitor Pattern):允许访问者遍历对象结构,执行操作。

J2EE模式

J2EE模式关注表示层,提供了一套解决问题的标准模式。常见的J2EE模式包括:

  • MVC模式(MVC Pattern):分离模型、视图和控制器,支持三层分离。
  • 业务代表模式(Business Delegate Pattern):代表业务逻辑,解耦数据访问。
  • 组合实体模式(Composite Entity Pattern):将多个实体组合成一个复合实体。
  • 数据访问对象模式(Data Access Object Pattern):将数据访问逻辑封装,提供统一接口。
  • 前端控制器模式(Front Controller Pattern):集中管理Web应用的前端逻辑。
  • 拦截过滤器模式(Intercepting Filter Pattern):在J2EE应用中实现过滤器链。
  • 服务定位器模式(Service Locator Pattern):定位服务实例,支持动态发现。
  • 传输对象模式(Transfer Object Pattern):封装数据,传输与处理,提高效率。

设计模式中的原则

在设计模式中,遵循一些核心原则可以提高代码的可维护性和扩展性。以下是几种重要的设计原则:

  • 开闭原则

    扩展开放,修改关闭。允许新增功能而不影响现有功能,通过接口扩展而非修改源代码。

  • 里氏代换原则

    继承时,子类可以替代父类,但保持相同的行为。确保继承的类保持接口一致性。

  • 依赖倒置原则

    面向接口编程,而非实现。通过依赖注入或接口定义,实现松耦合。

  • 接口隔离原则

    将不同功能模块的接口隔离,避免一个接口实现多个功能,降低类间耦合度。

  • 迪米特原则

    最少知道原则。一个实体尽量少与其他实体发生交互,保证模块独立性。

  • 合成复用原则

    尽量使用合成/聚合,而非继承,支持更大的代码复用性,减少继承带来的问题。

  • 通过遵循这些原则,可以在设计模式中实现更高效、更可靠的系统架构。

    转载地址:http://mvht.baihongyu.com/

    你可能感兴趣的文章
    New Relic——手机应用app开发达人的福利立即就到啦!
    查看>>
    NFinal学习笔记 02—NFinalBuild
    查看>>
    NFS
    查看>>
    NFS Server及Client配置与挂载详解
    查看>>
    NFS共享文件系统搭建
    查看>>
    nfs复习
    查看>>
    NFS安装配置
    查看>>
    NFS的安装以及windows/linux挂载linux网络文件系统NFS
    查看>>
    NFS的常用挂载参数
    查看>>
    NFS网络文件系统
    查看>>
    nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
    查看>>
    NFV商用可行新华三vBRAS方案实践验证
    查看>>
    ng build --aot --prod生成文件报错
    查看>>
    ng 指令的自定义、使用
    查看>>
    nghttp3使用指南
    查看>>
    Nginx
    查看>>
    nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
    查看>>
    nginx + etcd 动态负载均衡实践(二)—— 组件安装
    查看>>
    nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
    查看>>
    Nginx + Spring Boot 实现负载均衡
    查看>>