策略模式定义了算法家族,分别封装起来,让它们之间可以互相替换。
interface Strategy{ void doStrategy(); } public class StrategyA implements Strategy{ public void doStrategy(){ //算法A } } public class StrategyB implements Strategy{ public void doStrategy(){ //算法B } } public class Algorithm{ private Strategy strategy; public Algorithm(Strategy strategy){ this.strategy = strategy; } public void doAlgorithm(){ strategy.doStrategy(); } } 客户端 public static void main(String[] args){ Algorithm a = new Algorithm(new StrategyA); a.doAlgorithm(); //调用算法A Algorithm a = new Algorithm(new StrategyB); a.doAlgorithm(); //调用算法B }将具体的算法A和B与客户端进行了隔离。