策略模式
摘要:在讲解系列java设计模式的接下来的文章中,希望你深刻理解四个字 '开闭原则',意思就是对客户隐藏既有的功能,避免其修改,对于需要自定义添加的功能应该对客户提供拓展接口。
一:举个例子,假如你有一个计算器,现在你只添加 加减功能,至于乘除开方根号等功能你没有实现,留给客户实现。下面是代码
二:实现
Operation 接口:
public interface Operation { public int doOperation(int num1, int num2); }
两个实现类 —— 加法和减法:
public class OperationAdd implements Operation{ @Override public int doOperation(int num1, int num2) { return num1 + num2; } } public class OperationSub implements Operation { @Override public int doOperation(int num1, int num2) { return num1 - num2; } } 计算器类: public class Calculator { private Operation operation; public void setOperation(Operation operation){ this.operation = operation; } public int doOperation(int num1, int num2){ return this.operation.doOperation(num1,num2); } } 使用: Calculator calculator = new Calculator(); calculator.setOperation(new OperationAdd()); int result = calculator.doOperation(1,2); System.out.println(result);