当前位置: 首页> 文旅> 酒店 > 设计模式-策略模式

设计模式-策略模式

时间:2025/7/26 19:57:04来源:https://blog.csdn.net/weixin_43349479/article/details/140614963 浏览次数:0次

在Java中实现策略模式,可以通过定义一个策略接口和多个具体策略类,然后在上下文类中使用这些策略。以下是一个简单的Java策略模式示例:

策略接口

// 策略接口
public interface Strategy {void algorithmInterface();
}

具体策略类

// 具体策略A
public class ConcreteStrategyA implements Strategy {@Overridepublic void algorithmInterface() {System.out.println("Algorithm A");}
}// 具体策略B
public class ConcreteStrategyB implements Strategy {@Overridepublic void algorithmInterface() {System.out.println("Algorithm B");}
}

上下文类

// 上下文类
public class Context {private Strategy strategy;// 设置策略public void setStrategy(Strategy strategy) {this.strategy = strategy;}// 执行策略public void executeStrategy() {strategy.algorithmInterface();}
}

客户端代码

public class StrategyPatternDemo {public static void main(String[] args) {Context context = new Context();// 使用策略Acontext.setStrategy(new ConcreteStrategyA());context.executeStrategy();  // 输出: Algorithm A// 使用策略Bcontext.setStrategy(new ConcreteStrategyB());context.executeStrategy();  // 输出: Algorithm B}
}

运行结果

Algorithm A
Algorithm B

解释

  1. Strategy 接口:定义了一个算法接口 algorithmInterface
  2. ConcreteStrategyA 和 ConcreteStrategyB:实现了 Strategy 接口,提供了具体的算法实现。
  3. Context 类:持有一个 Strategy 对象,并通过 setStrategy 方法来设置具体的策略。通过 executeStrategy 方法来执行当前策略的算法。
  4. StrategyPatternDemo:客户端代码,演示了如何使用不同的策略。

通过这种方式,可以在运行时动态地改变对象的行为,而无需修改上下文类的代码。

关键字:设计模式-策略模式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: