Syong : 策略模式

策略模式

What
策略模式(Strategy Pattern)
Bing搜索结果

In computer programming, the strategy pattern (also known as the policy pattern) is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use.

一个类的行为或其算法可以在运行时更改

How

//测试类
public class Test {
    public static void main(String []args) {
		Context context = new Context();
		//模拟运行中context改变策略影响其行为
		context.setStrategy(new RunStrategy());
		context.doStrategy();
		context.setStrategy(new WalkStrategy());
		context.doStrategy();
		context.setStrategy(new BusStrategy());
		context.doStrategy();
    }
}
//一个行为随着策略对象改变而改变的 context 对象
class Context {
	private Strategy strategy;
	public void setStrategy(Strategy strategy){
		this.strategy = strategy;
	}
	public void doStrategy(){
		strategy.goHome();
	}
}
//回家策略
interface Strategy{
	void goHome();
}
//跑步回家策略
class RunStrategy implements Strategy{
	@Override
	public void goHome(){
		System.out.println("通过跑步回家!");
	}
}
//走路回家策略
class WalkStrategy implements Strategy{
	@Override
	public void goHome(){
		System.out.println("通过走路回家!");
	}
}
//搭公交车回家策略
class BusStrategy implements Strategy{
	@Override
	public void goHome(){
		System.out.println("通过搭公交车回家!");
	}
}

When & Where
涉及到的涉及原则:单一职责原则Single-Responsibilitiy Principle(SRP)

对一个类而言,应该仅有一个引起它变化的原因。如果存在多于一个动机去改变一个类,那么这个类就具有多于一个的职责,就应该把多余的职责分离出去,再去创建一些类来完成每一个职责。

容错恢复机制:策略模式实际应用场景

结束语优秀是一种习惯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值