代码片-策略模式+工厂模式(代码片段)

niaonao niaonao     2022-12-01     166

关键词:

通过策略类实现不同场景的策略处理,通过工厂模式创建不同的策略对象

1. 策略实现接口、策略实现类

1.1 策略接口

/**
 * 策略接口
 */
public interface IWarnRule 
    public void warn();

1.2 策略实现类

/**
 * 防拆告警策略实现类
 */
public class AntiRemovalWarn implements IWarnRule 

    private static final Logger log = LoggerFactory.getLogger(LongStaticWarn.class);
    
    public AntiRemovalWarn() 
    

    @Override
    public void warn() 
    	// TODO 防拆策略具体实现
	    log.info("防拆告警");
    

/**
 * 围栏告警策略实现类
 */
public class FenceWarn implements IWarnRule 

    private static final Logger log = LoggerFactory.getLogger(LongStaticWarn.class);
    
    public FenceWarn() 
    

    @Override
    public void warn() 
    	// TODO 围栏告警策略具体实现
	    log.info("围栏告警");
    

/**
 * sos告警策略实现类
 */
public class SosWarn implements IWarnRule 

    private static final Logger log = LoggerFactory.getLogger(LongStaticWarn.class);
    
    public SosWarn() 
    

    @Override
    public void warn() 
    	// TODO sos告警策略具体实现
	    log.info("sos告警");
    

2. 工厂类

/**
 * 告警工厂
 */
public class WarnFactory 

    public static IWarnRule getSosWarn(Position tag, LocUwbUser uwbUser) 
        return new SosWarn(tag, uwbUser);
    

    public static IWarnRule getAntiRemovalWarn(Position tag, LocUwbUser uwbUser) 
        return new AntiRemovalWarn(tag, uwbUser);
    
    
    public static IWarnRule getFenceWarn(Position tag, LocUwbUser uwbUser) 
        return new FenceWarn(tag, uwbUser);
    

3. 业务调用

    /* SOS告警 */
    IWarnRule sosWarn = null;
    if (type == 1) 
        sosWarn = WarnFactory.getSosWarn();/* sos告警 */
     else if (type == 2) 
        sosWarn = WarnFactory.getAntiRemovalWarn();/* 防拆告警 */
     else 
        sosWarn = WarnFactory.getFenceWarn();/* 围栏告警 */
    
    sosWarn.warn();

代码片-策略模式+工厂模式(代码片段)

通过策略类实现不同场景的策略处理,通过工厂模式创建不同的策略对象1.策略实现接口、策略实现类1.1策略接口/***策略接口*/publicinterfaceIWarnRulepublicvoidwarn();1.2策略实现类/***防拆告警策略实现类*/publicclassAntiRemovalWarnimplements... 查看详情

代码片-策略模式+工厂模式(代码片段)

通过策略类实现不同场景的策略处理,通过工厂模式创建不同的策略对象1.策略实现接口、策略实现类1.1策略接口/***策略接口*/publicinterfaceIWarnRulepublicvoidwarn();1.2策略实现类/***防拆告警策略实现类*/publicclassAntiRemovalWarnimplements... 查看详情

策略模式与简单工厂模式(代码片段)

...的方法属性,需要在策略类中封装策略后调用。 事列代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSy 查看详情

策略模式与工厂模式实践(代码片段)

...策略模式结构2.1分支逻辑解释2.2策略模式设计2.3策略模式代码2.3.1通用策略接口及其各策略实现。2.3.2执行上下文信息2.3.3客户端调用2.3.4总结3.常用示例3.1定义一个策略枚举3.2策略接口增加serviceCode3.3策略接口实现3.4策略工厂3.5使... 查看详情

策略模式与工厂模式实践(代码片段)

...策略模式结构2.1分支逻辑解释2.2策略模式设计2.3策略模式代码2.3.1通用策略接口及其各策略实现。2.3.2执行上下文信息2.3.3客户端调用2.3.4总结3.常用示例3.1定义一个策略枚举3.2策略接口增加serviceCode3.3策略接口实现3.4策略工厂3.5使... 查看详情

策略模式与工厂模式实践(代码片段)

...策略模式结构2.1分支逻辑解释2.2策略模式设计2.3策略模式代码2.3.1通用策略接口及其各策略实现。2.3.2执行上下文信息2.3.3客户端调用2.3.4总结3.常用示例3.1定义一个策略枚举3.2策略接口增加serviceCode3.3策略接口实现3.4策略工厂3.5使... 查看详情

springboot中使用策略模式+工厂模式(代码片段)

...构图:工厂类FactoryStrategy负责创建策略的工厂,代码比较简单&#x 查看详情

|啥是工厂模式和策略模式?(代码片段)

...attern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基... 查看详情

策略模式和简单工厂模式的结合使用(代码片段)

1//策略类,定义所有支持的算法的公共接口2publicabstractclassStrategy3publicabstractvoidalgorithmMethod(intnumberA,intnumberB);4 1//具体策略类,封装了具体的算法或行为,继承于Strategy2//用于加法的算法3publicclassConcreteStrategyAddextendsStra 查看详情

工厂模式策略者模式责任链模式综合应用(代码片段)

设计模式的具体运用:  简单工厂模式、策略者模式、责任链模式定义与使用classLoader的具体运用  自定义的classloader来动态加载类程序功能设计:  在商城购物时,商城可能会在特殊的日子、或者依据会员等级,对结算... 查看详情

策略模式与工厂模式实践(代码片段)

...策略模式结构2.1分支逻辑解释2.2策略模式设计2.3策略模式代码2.3.1通用策略接口及其各策略实现。2.3.2执行上下文信息2.3.3客户端调用2.3.4总结3.常用示例3.1定义一个策略枚举3.2策略接口增加serviceCode3.3策略接口实现3.4策略工厂3.5使... 查看详情

springboot中使用策略模式+工厂模式(代码片段)

...构图:工厂类FactoryStrategy负责创建策略的工厂,代码比较简单,比较关键的一点是AutoWired一个Map<String,Strategy>这个会在初始化的时候将所有的Strategy自动加载到Map中,是不是很方便。使用concurrentHashMap是防止多... 查看详情

springboot中使用策略模式+工厂模式(代码片段)

...构图:工厂类FactoryStrategy负责创建策略的工厂,代码比较简单,比较关键的一点是AutoWired一个Map<String,Strategy>这个会在初始化的时候将所有的Strategy自动加载到Map中,是不是很方便。使用concurrentHashMap是防止多... 查看详情

策略模式算法选择(代码片段)

...能还有打折优惠或满减活动,开发收银系统。【普通代码】说明:图片来源于大话设计模式,仅供学习使用。可以看到完全是硬编码,不灵活,可以采用上章学到的工厂模式解耦。工厂模式代码简单工厂模式... 查看详情

策略模式算法选择(代码片段)

...能还有打折优惠或满减活动,开发收银系统。【普通代码】说明:图片来源于大话设计模式,仅供学习使用。可以看到完全是硬编码,不灵活,可以采用上章学到的工厂模式解耦。工厂模式代码简单工厂模式... 查看详情

一文搞懂│工厂模式单例模式策略模式适配器模式观察者模式的原理和使用(代码片段)

✨目录🎈工厂模式🎈单例模式🎈策略模式🎈适配器模式🎈观察者模式🎈工厂模式工厂模式的原理作用:就是你只要传你需要的类进去,你就能得到他的实例化对象其实工厂就是帮你实例化你所... 查看详情

一文搞懂│工厂模式单例模式策略模式适配器模式观察者模式的原理和使用(代码片段)

✨目录🎈工厂模式🎈单例模式🎈策略模式🎈适配器模式🎈观察者模式🎈工厂模式工厂模式的原理作用:就是你只要传你需要的类进去,你就能得到他的实例化对象其实工厂就是帮你实例化你所... 查看详情

策略模式(strategypattern)(代码片段)

策略模式(StrategyPattern)概念定义算法家族,分别封装起来,让它们之间可以互相替换,让算法变化,不会影响到用户。模式结构模式实例与解析这里的例子还是上文简单工厂模式中的计算器加减乘除的设计。与原先的简单工厂... 查看详情