工厂+策略设计模式
2021-01-11 21:57
106 查看
有时后经常需要写很多的if判断语句,导致了代码的十分冗余,可读性不高,下面以工厂设计模式+策略设计模式提供一种可替代的写法,简化代码
工厂类:Factory
/** * 工厂设计模式 */ public class Factory { private static Map<String, Handler> strategyMap = Maps.newHashMap(); public static Handler getInvokeStrategy(String name) { return strategyMap.get(name); } public static void register(String name, Handler handler) { if (StringUtils.isEmpty(name) || null == handler) { return; } strategyMap.put(name, handler); } }
策略接口:
import org.springframework.beans.factory.InitializingBean; /** * 策略设计模式 */ public interface Handler extends InitializingBean { public void AAA(String name); }
具体实现的一些策略 KangBaHandler
@Component public class KangBaHandler implements Handler { @Override public void AAA(String name) { // 业务逻辑A System.out.println("亢八完成任务"); } @Override public void afterPropertiesSet() throws Exception { Factory.register("亢八", this); } }
具体实现的一些策略 LiSiHandler
import org.springframework.stereotype.Component; @Component public class LiSiHandler implements Handler { @Override public void AAA(String name) { // 业务逻辑A System.out.println("李四完成任务"); } @Override public void 56c afterPropertiesSet() throws Exception { Factory.register("李四", this); } }
具体实现的一些策略 TianQiHandler
import org.springframework.stereotype.Component; @Component public class TianQiHandler implements Handler { @Override public void AAA(String name) { // 业务逻辑A System.out.println("田七完成任务"); } @Override public void afterPropertiesSet() throws Exception { Factory.register("田七", this); } }
具体实现的一些策略 WangWuHandler
import org.springframework.stereotype.Component; @Component public class WangWuHandler implements Handler { @Override public void AAA(String name) { // 业务逻辑A System.out.println("王五完成任务"); } @Override public void afterPropertiesSet() throws Exception { Factory.register("王五", this); } }
具体实现的一些策略 ZhangSanHandler
import org.springframework.stereotype.Component; @Component public class ZhangSanHandler implements Handler { @Override public void AAA(String name) { // 业务逻辑A System.out.println("张三完成任务"); } @Override public void afterPropertiesSet() throws Exception { Factory.register("张三", this); } }
相关文章推荐
- 精通Java设计模式从初见到相爱之工厂+策略模式(3)
- 设计模式-简单工厂设计模式与策略模式之java实现二
- 设计模式学习(简单工厂、策略模式、单一职责、开闭原则)
- java设计模式之策略结合工厂模式
- 设计模式随笔-策略模式与简单工厂的区别
- 设计模式之_简单工厂模式、工厂方法模式、抽象工厂模式 、策略模式、策略与工厂的区别(转)
- c++ 设计模式之 策略模式与工厂模式结合
- 学习设计模式之结合简单工厂,策略,装饰的计算器
- 商场收银改进C#版--融合了工厂和策略设计模式
- 设计模式心得笔记--简单工厂和策略模式
- 简析设计模式之工厂模式与策略模式的实际组合应用
- 设计模式心得笔记--简单工厂和策略模式
- 设计模式(二)简单工厂与策略模式
- 设计模式--工厂模式.策略模式.单一职责原则.开放封闭原则.依赖倒转原则
- php设计模式--单例,工厂,观察者,策略模式
- 设计模式 学习笔记(1)简单工厂模式、策略模式
- 设计模式笔记——策略模式VS简单工厂模式
- ios开发中的基本设计模式(代理,观察者,MVC,单例,策略,工厂,MVVM,原型,Target-Action,通知(notification)机制)
- 设计模式:简单工厂与策略模式
- 设计模式——简单工厂+策略模式