设计模式:策略模式 ⑥

一、策略模式思想

简介

策略模式(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);
	}
}
相关推荐
dozenyaoyida10 小时前
嵌入式设计模式之策略模式(1)
经验分享·设计模式·策略模式
geovindu11 小时前
go: Simple Factory Pattern
开发语言·后端·设计模式·golang·简单工厂模式
陌上丨13 小时前
优雅终止线程的设计模式
设计模式
张涛酱10745613 小时前
Agent Skills 深入解析:构建可插拔的智能体知识体系
spring·设计模式·ai编程
Kel13 小时前
CrewAI v1.14.2 双模式架构深度剖析:当角色协作遇上事件驱动
人工智能·设计模式·架构
wuxinyan12314 小时前
Java面试题48:一文深入了解java设计模式
java·设计模式·面试
CoderMeijun14 小时前
C++ 单例模式:饿汉模式与懒汉模式
c++·单例模式·设计模式·饿汉模式·懒汉模式
han_15 小时前
JavaScript设计模式(十):模板方法模式实现与应用
前端·javascript·设计模式
楼田莉子16 小时前
仿muduo库的高并发服务器——项目基本认识及其相关概念
服务器·数据结构·c++·学习·设计模式
dozenyaoyida16 小时前
嵌入式设计模式之策略模式(2)
经验分享·设计模式·策略模式