背景:在给第三方推送表单数据时候,需要分多种方式进行传送,比如区分传送协议,传送参数,传送token等等,此时为了避免代码的重复和冗余,以及后期的扩展性和维护性,合理的利用策略模式可以很好的解决这个问题
协议包括:HTTP,HESSIAN,WEBSERVICE
参数:部分地址需要token进行验证身份,部分需要header参数,部分需要定制化的参数
传输方式:json对象,object对象
逻辑具体如下图
策略类部分代码:
public class StrategerExecutor {
private ActionExecutor actionExecutor;
public StrategerExecutor(ActionExecutor actionExecutor) {
this.actionExecutor = actionExecutor;
}
public Object executor ()throws Exception{
return actionExecutor.execute();
}
}
interface接口部分代码:
public interface ActionExecutor {
/**
* 业务执行方法
* @return
*/
public Object execute() throws Exception;
}
客户端部分代码:
ActionExecutor executor = (ActionExecutor) getExecutor(thirdpart, thirdpartyHeaders, thirdpartyParams, object);
StrategerExecutor strategerExecutor=new StrategerExecutor(executor);
Object result =strategerExecutor.executor();