1:概述
小威哥最近因为比较忙,所以好久没有推出新文章了,这期就来给大家讲一下非常简单也非常实用和优雅的策略模式
2:策略模式
直接怼上代码:
* 这是一个接口
* 策略模式 :策略模式一般以Strategy结尾,表示我是一个策略模式!
public interface ReceiveMsgStrategy {
void doMsg(String msg);
}
* 我们来写个实现
public class MsgDoOne implements ReceiveMsgStrategy{
@Override
public void doMsg(String msg) {
System.out.println("do msg one -> msg : " + msg);
}
}
* 再写个二次封装类
public class ReveiveMsgContext {
private ReceiveMsgStrategy receiveMsgStrategy;
private ReveiveMsgContext() {
}
public ReveiveMsgContext(ReceiveMsgStrategy receiveMsgStrategy) {
this.receiveMsgStrategy = receiveMsgStrategy;
}
// 这个就是主执行方法
public void doMsg(String msg) {
if (null != receiveMsgStrategy) {
receiveMsgStrategy.doMsg(msg);
}
}
}
3:应用场景
其实大家也看出来了吧,策略模式其实就是对一个接口多个实现的二次封装而已,非常简单,但是可以根据自己的偏好啊,业务的需求啊,搞的非常灵活,甚至你可以对它进行三次封装(封装大法好)。
那么其实应用场景也很简单,有些业务可能他的计算判断方法一直在变根据场景或者开关什么的,这个时候我们就可以动态配置这些实现类对应不同的场景。
4:总结
这个模式也太easy了,感觉什么场景都能用,然后再混搭其他设计模式,争取写出让同事无法维护的代码!