23种设计模式笔记第十三篇行为型模式之策略模式

行为型模式

是对在不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象 之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。

行为型模式同样也分为类行为型模式和对象行为型模式。

类行为型模式:类的行为型模式使用继承关系在几个类之间分配行为,类行为型模式主要通过多态等方式来分配父类与子类的职责。

对象行为型模式:对象的行为型模式则使用对象的聚合关联关系来分配行为,对象行为型模式主要是通过对象关联等方式来分配两个或多个类的职责。根据“合成复用原则”,系统中要尽量使用关联关系来取代继承关系,因此大部分行为型设计模式都属于对象行为型设计模式。

对象行为和算法行为

对象行为:又包括对象内部行为和对象间的行为。对象内部的行为包括:命令模式和状态模式。命令模式就是把一些请求封装成一个对象,这样我们可以整体的来看待这个请求,就不用去考虑这个请求的一些内部的结构。状态模式就是一个假象,对象内部状态改变也允许它行为上改变,状态和行为的改变也就在表面上意味着修改了类。外部的对象行为:观察者模式和职责链模式,观察者是一对多的依赖关系,这样就能实现更新一个对象就能更新所有依赖的对象,感觉效率会很高。职责链模式就是请求在各对象之间的顺序请求处理,就好像我们在一堆数字中找出最小的顺序选择法,一个一个去比,就相当于一个请求和一个一个对象去建立联系,看哪个对象能去处理这个请求。

算法行为:这个就是主要介绍了模版模式,模版模式就和我们学习C++中的模版一样,就是为我们准备一个算法框架,当我们应用的时候不用去修改算法内部的结构,只需要重新定义算法不同的特定步骤,重新定义特殊的部分就行了。这部分就是对象和算法的模式设计,就是关于对象之间的关系与算法的设计,对象的动态行为就是我们设计模式要研究的课题。

行为型模式包括:Template Method模版方法、Command命令、Interpreter解释器、Mediator中介者、Iterator迭代器、Observer观察者、Chain of Responsibility职责链、Memento备忘录、State状态、Strategy策略、Visitor访问者。

 策略模式

该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

策略模式的主要角色

抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。

具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体的算法实现或行为。

环境(Context)类:持有一个策略类的引用,最终给客户端调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stella呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值