设计模式-行为型模式-策略模式

策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。[DP]

复制代码
//首先,我们定义一个策略接口:


public interface Strategy {
    public int doOperation(int num1, int num2);
}
//接着,我们创建实现了策略接口的具体策略类:


public class OperationAdd implements Strategy {
    @Override
    public int doOperation(int num1, int num2) {
        return num1 + num2;
    }
}

public class OperationSubtract implements Strategy {
    @Override
    public int doOperation(int num1, int num2) {
        return num1 - num2;
    }
}

public class OperationMultiply implements Strategy {
    @Override
    public int doOperation(int num1, int num2) {
        return num1 * num2;
    }
}
//然后,我们创建一个上下文类,它接受一个策略对象并使用该策略对象执行操作:


public class Context {
    private Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public int executeStrategy(int num1, int num2) {
        return strategy.doOperation(num1, num2);
    }
}
//最后,我们编写客户端代码来演示如何使用策略模式:


public class StrategyPatternDemo {
    public static void main(String[] args) {
        Context context = new Context(new OperationAdd());    
        System.out.println("10 + 5 = " + context.executeStrategy(10, 5));

        context = new Context(new OperationSubtract());    
        System.out.println("10 - 5 = " + context.executeStrategy(10, 5));

        context = new Context(new OperationMultiply());    
        System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
    }
}
相关推荐
o0向阳而生0o20 小时前
107、23种设计模式之观察者模式(16/23)
观察者模式·设计模式
默默coding的程序猿21 小时前
1.单例模式有哪几种常见的实现方式?
java·开发语言·spring boot·spring·单例模式·设计模式·idea
bkspiderx1 天前
C++设计模式之行为型模式:迭代器模式(Iterator)
c++·设计模式·迭代器模式
简小瑞1 天前
VSCode源码解密:一行代码解决内存泄漏难题
前端·设计模式·visual studio code
Asort1 天前
JavaScript设计模式(九)——装饰器模式 (Decorator)
前端·javascript·设计模式
rongqing20191 天前
Google 智能体设计模式:模型上下文协议 (MCP)
设计模式
小小前端_我自坚强1 天前
2025WebAssembly详解
前端·设计模式·前端框架
笨手笨脚の1 天前
设计模式-责任链模式
设计模式·责任链模式·行为型设计模式
笨手笨脚の1 天前
设计模式-策略模式
设计模式·策略模式·行为型设计模式
2501_915921431 天前
iOS 26 崩溃日志解析,新版系统下崩溃获取与诊断策略
android·ios·小程序·uni-app·cocoa·iphone·策略模式