策略模式把要使用算法的‘客户’,跟具体的‘算法’ 分离开来,这种分离通关了中间的一个接口(或抽象类) 来实现。一般情况下,会配合简单工厂模式使用,简单工厂模式负责生产不同的对象实例,而策略模式则负 责实现不同的对象对应的实现算法。 举例如下: 假如小明有自行车、摩托、电动车三种交通工具,三种交通工具发动靠不同的算法实现 自行车双脚一蹬,摩托依靠汽油为动力,电动车依靠充电电池。这三种交通工具都用startMove方法, 我们 把其定义为 public interface RunTools{ public void startMove(); } 自行车、摩托、电动车分别对应实现了RunAction接口 public class Bicycle implements RunTools{ public void startMove(){ //自行车实现 }; } public class Moto implements RunTools{ public void startMove(){ //摩托实现 }; } public class EBicycle implements RunTools{ public void startMove(){ //电动车实现 }; } 下面建立生成RunTools实例的工厂类 public class RunToolsFactory{ public static RunTools createTools(String type){ if(type.equals("Bicycle")){ return new Bicycle(); } if(type.equals("Moto")){ return new Moto(); } if(type.equals("EBicycle")){ return new EBicycle(); } } } 下面创建客户类 public class Client{ public void travel(String tools){ RunTools tools = RunToolsFactory.createTools(tools); tools.startMove(); } }
策略模式个人理解
最新推荐文章于 2023-07-18 14:21:26 发布