设计模式--行为型设计模式(behavioral)

 1  模板方法(Template Method)

    简单来说就是 一个方法有多个步骤去执行,包括 不变的方法和可变的方法,可变的方法就放到子类里面执行。例子 将某个东西塞冰箱里需要几步(1   2  3  4  )

  2 策略模式(Strategy)

   简单来说就是 面向对象中的多态就可以认为是一种策略模式的使用, 对于同一个接口使用不同的实现类, 有不同的行为。

  实例 :小伙伴出去玩耍, 需要选择一种出行方式(同一个接口), 有自驾出行和公交出行两种策略

 3  观察者模式(Observer)

  简单来说就是 当数据或其他有变化的时候,就通知相关方去对应处理。对象之间的一对多依赖, 让多个观察者对象同时监听某一个主题对象, 当主题对象发生变化时, 它的所有依赖者(观察者)都会收到通知并更新

 

 4 备忘录模式(Memento)

   简单来说就是 保存对象的某个状态,便在适当的时候恢复对象

 

 

 

 

   5 命令模式(Command)

   简单来说就是 请求的调用者和接受者不直接交互,降低耦合  (人和灯没有交互,通过Command去建立关系)

  • Command接口 : 对应模式中Command接口 --执行操作的接口
  • LighetOnCommand, LightOffCommand : 对应模式中ConcreteCommand角色--接收者对象绑定于一个动作,调用接收者相应的操作,以实现Excute
  • Person : 对应模式中Invoker角色--要求该命令执行这个请求
  • Light : 对应模式中Receiver角色--知道如何实施与执行一个请求相关的操作
  • Client : 对应模式中Client角色, 测试代码

 6  中介者模式(Mediator)

   简单来说就是 通过一个中介将很多对象之间的交互关系由直接变为间接,将“网状结构”的交互关系变为“星形结构”的交互关系。比如生活中为了方便交流往往我们都会使用各种群,一个群成员发送了消息所有属于这个群的成员都会收到通知,这样的一个“群”就属于中介者。

  群聊场景, 每个用户将消息发送到群中, 在群中展示, 不具体发送到个人, 类与中介者模式对应关系如下:

  • Mediator接口 : 对应中介者模式中的Mediator(中介者)角色
  • GroupMediator : 对应中介者模式中的ConcreteMediator(具体中介者)角色
  • User : 对应中介者模式中的Colleague class(同事类)角色
  •  7  责任链模式(Chain of Responsibility)

     简单来说就是 责任链模式其实就是一个灵活版的if…else…语句,它就是将这些判定条件的语句放到了各个处理类中

  • 以注册时校验用户名密码为例, 类与设计模式中个角色对应关系如下:

    • Handler接口 : 对应Handler角色
    • NameCheckHandler, PwdCheckHandler : 对应ConcreteHandler角色
    • Client : 对应Client角色

       

       8 访问者模式(Visitor)

    • 一个商场(SuperMarket),通常都会包括(当然还会包含一些其他的组成部分):商店(Store)、监控室(MonitoringRoom)、卫生间(WaterCloset)。商场的访问者大致可以分为两大类:顾客(Customer)、商场工作人员(MarketStaff)。顾客可以逛商店、上卫生间,但却不能进入监控室;工作人员可以进入监控室、上卫生间,但却不能像顾客一样逛商店(除非他不想干了),也就是说对于商场的同一个地点,不同的访问者有不同的行为权限,而且访问者的种类很有可能需要根据时间的推移发生变化(没准哪天,工商局的人要来视察呢!此时就需要增加工商局人员的访问者了。)

       9 状态模式(State)

       简单来说就是 允许一个对象在其内部状态改变时, 改变它的行为。适用于一个对象存在多个状态(不同状态下行为不同), 且状态可相互转换

    •  

       

posted @ 2020-11-13 13:28  大胃王1992  阅读(220)  评论(0编辑  收藏  举报