前言:使用设计模式主要是为了减少代码的耦合性(依赖关系),大大有利于后期的代码维护
1.编写策略的抽象类
public abstract class Strategy {
public void say(){
throw new RuntimeException("没有实现say该方法");
}
public void eat(){
throw new RuntimeException("没有实现eat该方法");
}
}
2.继承策略的抽象类
public class AStrategy extends Strategy{
@Override
public void say() {
System.out.println("A===》hello");
}
@Override
public void eat() {
System.out.println("A===>正在吃饭.....");
}
}
public class BStrategy extends Strategy{
@Override
public void say() {
System.out.println("B===》hello");
}
}
public class CStrategy extends Strategy{
@Override
public void say() {
System.out.println("C===》hello");
}
}
3.对策略方法进行封装
public class Context {
private final static Map<String,Strategy> map=new HashMap<>();
static {
map.put("A",new AStrategy());
map.put("B",new BStrategy());
map.put("C",new CStrategy());
}
public static Strategy getStrategy(String name){
return map.get(name);
}
}
4.测试
public class Test {
public static void main(String[] args) {
Strategy strategy=Context.getStrategy("A");
Strategy strategy1=Context.getStrategy("B");
strategy.say();
strategy.eat();
strategy1.say();
strategy1.eat();
}
}
5测试结果