简介(Introduction) 之前学习Java8实战时,遇到一个很好的策略模式示例.便想着借着这个示例结合反馈式的方法来,学习策略设计模式,也以便后面反复琢磨学习. 首先我们通过练习,逐步写出符合相应需求的代码,再根据需求进行改进.比较.重写,最终得出一种更灵活的最佳实现. 练习 /** 该类为苹果 */ class Apple { private Float weight; private String color; } /** 该类为苹果过滤器 */ public class Apple
策略模式可以看做“可插入式算法(Pluggable)”,将子类各自的行为和公共的逻辑分离开来,将子类的行为抽象为算法插入到公共的逻辑中,这样替换子类的行为也不会对公共逻辑产生影响,也不会影响到调用类的逻辑. 下面是一个策略模式的简单例子,类图如下: 公共逻辑Context的代码如下: public class Context{ public void contextInterface(){ //add common code here strategy.strategyInterface();