设计模式:策略模式 ⑥

一、策略模式思想

简介

策略模式(Strategy Pattern)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

其主要目的是通过定义相似的算法,替换if else 语句写法,并且可以随时相互替换。

策略模式主要由这三个角色组成,环境角色(Context)、抽象策略角色(Strategy)和具体策略角色(ConcreteStrategy)。

  • 环境角色(Context):持有一个策略类的引用,提供给客户端使用。
  • 抽象策略角色(Strategy):这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
  • 具体策略角色(ConcreteStrategy):包装了相关的算法或行为。

示例图如下:

复制代码
class  CalculatorContext {
	private CalculateStrategy strategy;

	public CalculatorContext(CalculateStrategy strategy) {
		this.strategy = strategy;
	}

	public int executeStrategy(int num1, int num2) {
		return strategy.doOperation(num1, num2);
	}
}
相关推荐
Summer_Xu13 小时前
模拟 Koa 中间件机制与洋葱模型
前端·设计模式·node.js
资源大全免费分享15 小时前
MacOS 的 AI Agent 新星,本地沙盒驱动,解锁 macOS 操作新体验!
人工智能·macos·策略模式
云徒川15 小时前
【设计模式】原型模式
java·设计模式·原型模式
huang_xiaoen21 小时前
java设计模式之桥接模式(重生之我在地府当孟婆)
设计模式·桥接模式
HappyGame021 天前
设计模式-观察者模式
观察者模式·设计模式
渊渟岳1 天前
掌握设计模式--解释器模式
设计模式
牵牛老人1 天前
C++设计模式-责任链模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
c++·设计模式·责任链模式
肥仔哥哥19301 天前
设计模式分类与定义(高软55)
设计模式·软考·高软·设计模式分类
云徒川2 天前
【设计模式】过滤器模式
windows·python·设计模式
找了一圈尾巴2 天前
设计模式(结构性)-代理模式
设计模式·代理模式