策略模式通常用来解决实际开发中if-else过多的场景,强调解耦合,而不是每次新增一个策略,就改动原有的代码,这样容易引入新的问题
在我遇到的实际开发中,有一个场景比较适合使用策略模式:一个业务产品上线之后,需要接入很多合作方(调用者),每一个合作方的逻辑处理不太相同,所以需要使用if-else来做判断,由于这种写法不符合开闭原则,所以采用策略模式进行改造
具体的编写流程:
1、编写一个策略接口
2、编写实际的策略类,实现策略接口
3、编写控制器类,通过传参(策略类对象)决定访问哪一个策略
4、编写测试类,输出结果
public interface Partner {
public String getParterURL();
}
public class Console {
private Partner partner;
public Console(Partner partner){
this.partner = partner;
}
public String getURl(){
return partner.getParterURL();
}
}
public class A implements Partner{
@Override
public String getParterURL() {
return "A";
}
}
public class B implements Partner{
@Override
public String getParterURL() {
return "B";
}
}
public class TestDemo {
public static void main(String[] args) {
Console console = new Console(new A());
System.out.println(console.getURl());
}
}