策略模式(1)

Strategy Pattern

策略模式主要是指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。
一个类的行为或其算法可以在运行时更改。
策略模式就是一个接口下有多个实现类,而每种实现类会处理某一种情况。
如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题。

组成

环境类(Context):用来操作策略的上下文环境

public class StrategyPattern {
	private StrategyInter strategyInter;	
	public StrategyPattern(StrategyInter strategyInter) {
		this.strategyInter = strategyInter;
	}	
	public void exe(int m,int n) {
		System.out.println(strategyInter.doOper(m, n));
	}	
}

抽象策略类(Strategy):策略的抽象

public interface StrategyInter {
	public int doOper(int m,int n);
}

具体策略类(ConcreteStrategy):具体的策略实现

public class StrategyOpeAdd implements StrategyInter{
	@Override
	public int doOper(int m, int n) {
		return m+n;
	}
}

应用

旅行的出游方式,选择骑自行车、坐汽车、坐火车、坐飞机,每一种旅行方式都是一个策略。
老师评讲试卷,一道题有多种解法。
扫描商户订单给商户发送通知,不同的交易类型,有不同通知报文。TX(提现),CZ(充值)。
超市活动打折优惠:
普通计费
满300减20,满400减80
满500打八折

状态模式

状态模式是随着状态的改变不停地更改执行方法。
好比我们旅游,对于策略模式我们只需要选择其中一种出行方法就好了。
对于状态模式,可能我们到了A地点选择的是火车,到了B地点又选择飞机,根据不同的状态选择不同的出行方式。

工厂模式

工厂模式是创建型模式 ,它关注对象创建,提供创建对象的接口,让对象的创建与具体的使用客户无关。
策略模式是对象行为型模式 ,它关注行为和算法的封装 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值