我是靠谱客的博主 完美棒球,最近开发中收集的这篇文章主要介绍设计模式概念总结创建型模式、结构型模式、行为模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

持续更新中…

创建型模式、结构型模式、行为模式

关于这三种模式这篇博客解释的还算清楚,我这里不就黏贴复制了创建、结构、行为详解

创建型模式

创建型模式就是创建对象的模式,封装了实例化的过程。

  • 简单工厂模式(Simple Factory)
  • 工厂方法模式(Factory Method)
  • 抽象工厂模式(Abstract Factory)
  • 创建者模式(Builder)
  • 原型模式(Prototype)
  • 单例模式(Singleton)

结构型模式

解决怎样组装现有的类,设计它们的交互方式,从而达到实现一定功能的目的。

  • 外观模式(Facade)
  • 适配器模式(Adapter)
  • 代理模式(Proxy)
  • 装饰模式(Decorator)
  • 桥梁模式(Bridge)
  • 组合模式(Composite)
  • 享元模式(Flyweight)

行为型模式

行为型模式设计到算法和对象间职责的分配,以及他们之间的通信方式

  • 模板方法模式(Template Method)
  • 观察者模式(Observer)
  • 状态模式(State)
  • 策略模式(Strategy)
  • 责任链模式(Chain of Responsibility)
  • 命令模式(Command)
  • 访问者模式(Visitor)
  • 中介者模式(Mediator Pattern)
  • 备忘录模式(Memento)
  • 迭代器模式(Iterator)
  • 解释器模式(Interpreter)

各模式对比

策略模式、状态模式的对比

策略模式

**定义:**策略模式定义了一系列的算法,并将每个算法封装起来,使他们可以相互替换
策略模式

  • Context:用来操作策略的上下文环境
  • Strategy:策略的抽象
  • ConcreteStrategyA、ConcreteStrategyB:具体的策略实现

优点:

  • 结构清晰明了,使用简单直观
  • 耦合度相对而言较低,扩展方便
  • 操作封装也更为彻底,数据更为安全

缺点

  • 随着策略的增加,子类也会变得繁多

状态模式

定义:一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
在这里插入图片描述
状态模式和策略模式的结构几乎完全一样,但他们的目的本质完全不一样。
状态模式的行为是平行的,不可替换的,策略模式的行为是彼此独立的,可相互替换的。

优点:
State 模式将所有与一个特定的状态的行为都放入一个状态对象中,它提供了一个更好的方法来组织与特定状态相关的代码,将繁琐的状态判断转换成结构清晰的状态类族,在避免代码膨胀的同时也保证了可扩展性与可维护性。
缺点:
状态模式的使用必然会增加系统类和对象的个数。

责任连链模式

定义: 使多个对象都有集合处理请求,从而避免了请求的发送者和接受者之间的偶和关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止

使用场景

  • 多个对象可以处理同一请求,但具体由哪个对象处理则在运行时动态决定。
    在这里插入图片描述
    优点: 对请求者和处理者关系解耦,提高代码的灵活性
    缺点: 对链中请求处理者的遍历,如果处理者太多那么遍历必定会影响性能,特别是在一些递归调用中,要慎重。

命令模式

定义: 将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录请求日志,以及支持可撤销的操作
在这里插入图片描述

最后

以上就是完美棒球为你收集整理的设计模式概念总结创建型模式、结构型模式、行为模式的全部内容,希望文章能够帮你解决设计模式概念总结创建型模式、结构型模式、行为模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部