设计模式之__策略模式

化整为零,化有形未无形

策略模式:
策略模式致力于解决掉代码中的 if else 逻辑,让程序员不必在频繁的修改if else
策略模式 在java中 说穿了就是 利用多态代替 if else 这条编码实践.

假设需求 为 :
当状态码为 1, 调用 business1 由于 business1的业务逻辑太多因此将其抽为一个businessA类
当状态码为 2,调用 business1 由于 business2的业务逻辑太多因此将其抽为一个businessB类
其余的状态码 同理一直到 状态码 10;
那么是否代表着在代码中 就要有10个if\ else的逻辑?

public void business(String statusCode){
	
	if("1".equals(statusCode)){
		BuiniessA buiniessA= new BuiniessA();
		buiniessA.doBusiness();
	}else if("1".equals(statusCode)){
		BuiniessB buiniessB= new BuiniessB();
		buiniessB.doBusiness();
	}......
	
}

此时可以使用策略模式,也就是将所有的busniness中的 doBusiness函数抽出成 一个接口 businessInterface,然后所有的busniess实现类都实现 businessInterface 此接口 在代码中将所有的 business类全都放入一个map中 key为状态码, value就是当前对象了(至于如何获得所有实现类,可以参考spring的包扫描方式,或是直接使用xml文件配置)
那么代码就会类似于下面的方式

private static Map<> businessInterface =new HashMap<String,BusinessInterface>();
// 此处就简单粗暴的直接new了
static{
	businessInterface.put("1", new BusinessA);
	businessInterface.put("2", new BusinessB);
}
public void business(String statusCode){
	
	 BusinessInterface businessInterface = businessMap.get(statusCode);
	 businessInterface.doBusiness();
	
}
发布了41 篇原创文章 · 获赞 225 · 访问量 8755

猜你喜欢

转载自blog.csdn.net/weixin_43843042/article/details/103713016