近期在项目内做code review发现有些代码逻辑判断if else有点长,例如如果type=A实现一个逻辑,如果type=B实现另外一个逻辑,如果type比较的情况下就会出现N多if else,影响代码可读性,也不够优雅,在这种情况可以运用策略模式进行优化。
策略模式:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。
通过工厂类FactoryStrategy负责创建策略的工厂,代码比较简单,比较关键的一点是AutoWired一个Map<String, Strategy> 这个会在初始化的时候将所有的Strategy自动加载到Map中,是不是很方便。