工厂+模板方法设计模式
2021-01-11 22:04
44 查看
有时后经常需要写很多的if判断语句,导致了代码的十分冗余,可读性不高,下面以工厂设计模式+策略设计模式提供一种可替代的写法,简化代码
工厂设计模式:Factory2
import com.google.common.collect.Maps; import org.springframework.util.StringUtils; import java.util.Map; /** * 工厂设计模式 */ public class Factory2 { private static Map<String, AbstractHandler> strategyMap = Maps.newHashMap(); public static AbstractHandler getInvokeStrategy(String str) { return strategyMap.get(str); } public static void register(String str, AbstractHandler handler) { if (StringUtils.isEmpty(str) || null == handler) { return; } strategyMap.put(str, handler); } }
模板方法设计模式 AbstractHandler
/** * 模板方法设计模式 */ public abstract class AbstractHandler implements InitializingBean { public void AAA(String name) { throw new UnsupportedOperationException(); } public String BBB(String name) { throw new UnsupportedOperationException(); } }
模板方式:LiSiHandler2
@Component public class LiSiHandler2 extends AbstractHandler { @Override public String BBB(String name) { // 业务逻辑B return "李四完成任务B"; } @Override public void afterPropertiesSet() throws Exception { Factory2.register("李四", this); } }
模板方式:TianQiHandler2
import org.springframework.stereotype.Component; @Component public class TianQiHandler2 extends AbstractHandler { @Override public void AAA(String name) { // 业务逻辑A System.out.println("田七完成任务A"); } @Override public void afterPropertiesSet() throws Exception { Factory2.register("田七", this); } }
模板方式:WangWuHandler2
import org.springframework.stereotype.Component; ad1 @Component public class WangWuHandler2 extends AbstractHandler { @Override public String BBB(String name) { // 业务逻辑B return "王五完成任务B"; } @Override public void afterPropertiesSet() throws Exception { Factory2.register("王五", this); } }
相关文章推荐
- 设计模式-工厂方法 简单工厂 抽象工厂 模板方法
- 【一起学设计模式】命令模式+模板方法+工厂方法实战: 如何优雅的更新商品库存...
- 初学Java---面向对象编程-设计模式学习(单例模式-模板方法-简单工厂-工厂方法)
- 设计模式-工厂方法 简单工厂 抽象工厂 模板方法
- Java设计模式(工厂方法设计模式和模板设置模式)
- 学习设计模式:简单工厂、模板方法、单例(上)
- 设计模式之工厂模式与模板方法
- 学习设计模式:简单工厂、模板方法、单例(下)
- 经典设计模式之模板方法模式【聚合支付平台使用模板+工厂实现异步回调】
- JAVA设计模式创建型模式之工厂方法
- 对设计模式的总结之工厂方法模式和抽象工厂模式
- RPG游戏中的设计模式之工厂方法模式
- 结合项目实例 回顾传统设计模式(八)模板方法模式
- c++设计模式—模板方法模式
- 设计模式之工厂方法模式
- 【创建型设计模式】-简单工厂方法设计模式
- 设计模式(七)模板方法模式
- GoF 23个经典的设计模式03--创建模式之工厂方法(未完代续)
- 模板方法设计模式--学习笔记
- 设计模式学习-Factory Method(工厂方法)