常用设计模式(六)——策略设计模式

本文深入探讨了策略设计模式的意图、实现方式及其优势,通过具体代码示例展示了如何在实际项目中灵活运用该模式来封装算法,支持算法的自由切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.6 策略设计模式


策略设计模式的意图就是将可互换的方法封装在各自独立的类中,并且让每个方法都实现一个公共的操作

策略模式用于封装系列的算法,这些算法通常被封装在一个被称为Context的类中,客户端程序可以自由选择其中一种算法,或让Context为客户端选择一种最佳算法——使用策略模式的优势是为了支持算法的自由切换。

	public interface IStrategy{
		public abstract void operate();
	}
	public class OneStrategy implements IStrategy{
		@Override
		public void operate() {
			// TODO Auto-generated method stub
			System.out.println("我是第一条策略");
		}
	} 
	public class TwoStrategy implements IStrategy{
		@Override
		public void operate() {
			// TODO Auto-generated method stub
			System.out.println("我是第二条策略");
		}
	}
	//放置策略的地方相当于将两个妙计(策略)放到了锦囊中
	public class Context{
		private IStrategy iStrategy;
		public Context(IStrategy iStrategy) {
			// TODO Auto-generated constructor stub
			this.iStrategy = iStrategy;
		}
		public void action(){
			this.iStrategy.operate();
		}
	}


测试用例

public class StrategyTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Context context;
		IStrategy isStrategy = new OneStrategy();
		context = new Context(isStrategy);
		context.action();
		
		isStrategy = new TwoStrategy();
		context = new Context(isStrategy);
		context.action();

	}
}
输出结果

我是第一条策略
我是第二条策略





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值