美文网首页
策略模式java

策略模式java

作者: Yluozi | 来源:发表于2023-10-18 09:30 被阅读0次

定义一个抽象接口,下面由多个子类继承,并将所有子类注入一个方法连通器,通过传入的参数去执行指定策略子类接口。

创建抽象接口


public abstract  class TStrategy {
    /**
     * 支持的种类
     * @return
     */
    public abstract String supportedType();

    /**
     * 调用方法
     * */
    public abstract String callMethod(String entity,String className1);
}

创建的具体实现子类


@Component
@Slf4j
public class CutStrategy extends TStrategy{


    @Autowired
    TController tController;

    @Override
    public String supportedType() {
        // 调用type抽象方法的type
        return "PonEntity";
    }

    @Override
    public String callMethod(String entityStr,String className1)  {
        Gson gson = new Gson();
        PonEntity entity = gson.fromJson(entityStr,PonEntity.class);

        try {
       
        } catch (Exception e) {
            log.error("错误:"+e.getMessage());
            e.printStackTrace();
        }
        return gson.toJson(entity);
    }
}

策略调用入口

@Component
public class TContext {
    // 这里使用到了Spring的自动注入,将所有子类注入进来
    @Autowired
    private List<TStrategy> tStrategies;

    // 不同的工种自己进行不同的逻辑
    public String productionT(String type, String data,String classname1) {
        return this.getStrategy(type).callMethod(data,classname1);
    }

    // 根据type的不同来获取到不同的工种子类
    private TStrategy getStrategy(String type) {
        return this.tStrategies
                .stream()
                .filter(TStrategy -> type.equals(TStrategy.supportedType()))
                .findFirst()
                .get();
    }
}

调用方法

    @Autowired
    private TContext context;
...
String str = context.productionT("PonEntity",new Gson().toJson(PreEntity),"");
                   

相关文章

  • java建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java策略模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • Java8之被简化的设计模式

    Java8命令模式简化 策略模式

  • Kotlin设计模式之策略模式

    简单介绍下用Kotlin写的策略模式,还有就是与Java版本的对比。 Kotlin Java 输出 实现策略模式时...

  • 设计模式 | 策略模式及典型应用

    本文的主要内容: 介绍策略模式 示例商场购物打折策略的实现 策略模式总结 源码分析策略模式的典型应用Java Co...

网友评论

      本文标题:策略模式java

      本文链接:https://www.haomeiwen.com/subject/yizqidtx.html