首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

根据不同条件使用不同实现类的业务代码设计

场景 此时有一个场景,需要设计一个根据不同的状态和条件采用不同的业务处理方式。 这样大家可能不是太理解。...AliPayServiceImpl implements PayService {} 但是仔细思考后,还是存在一些问题 如果增加一个支付方式后还需要修改,PayWay这个枚举类型 在程序中,仍需要根据不同的条件做...先思考一下这个if else的作用是什么? 答:根据思路①描述,这个if else是用来确定采用哪种支付方式。...我们可以将这块代码抽离出来,让对应的业务实现类实现自己的逻辑实现,然后根据返回值true 或者false决定是否过滤掉这个业务实现类。...就连之前设计的枚举都可以不用,可扩展性大大提升。如需使用,只需修改对应的入参和对应的名称即可。

2.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    linux下gcc、g++不同版本的安装和切换

    Ubuntu 18.04预装GCC版本为7.3,但有时在编译是需要用的不同gcc版本,下面介绍,如何安装不同的gcc 和g++,并设置根据不同的需要在不同版本之间切换。 1....使用update-alternatives设置gcc和g++: update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本...其中40 ,50 ,70是优先级数值可以自己设定,--slave能保证gcc和g++保持相同的版本。...使用如下命令选择gcc的版本: sudo update-alternatives --config gcc 可以看到当前gcc默认的版本是gcc-7,下面我们修改为gcc-4.8,直接选择编号即可。...删除 删除某个gcc版本的选项的话,可以使用 sudo update-alternatives --remove gcc /usr/bin/gcc-4.5 再使用apt-remove删除即可

    14.2K10

    bat批处理命令根据不同的操作系统设置不同的电源使用方案

    直接下发策略远程关机是可以的,但怕有误伤;准备推送策略让电脑休眠,毕竟能省一点是一点吗,接着发现这得每天推送一次脚本,并且遇到加班的同事策略就显得呆板了,无法在错过执行时间后继续运行;又考虑了下,想办法更改终端的电源方案...,控制显示器关机和睡眠时间,这样只要符合策略系统自己就执行了;继续完善,xp和win7系统更改电源方案命令还不一样;最后决定通过360天擎平台推送批处理脚本,然后脚本根据操作系统执行对应的命令,这样终端电源方案被改了...40分钟无人使用进入睡眠状态 3、使用powercfg命令更改xp系统电源方案 目的:主要调整电源方案家用/办公桌计划的关闭显示器时间和使计算机进入休眠状态时间。...5、使用批处理文件设置不同的系统使用不同的命令 @echo off ver|find "5.1" if errorlevel 1 goto win7 if errorlevel 0 goto xp :...6、使用360天擎或者盈高准入推送批处理文件 只要将bat批处理文件推送到对应终端然后执行,这样终端的电源计划就被修改了,只要满足条件就会触发。

    2.3K10

    根据不同的业务场景,选择合适的锁?

    四种使用方式 在静态方法上使用 在普通方法上使用 锁定 this 状态 锁定静态类 加锁状态记录位置 对象加锁,记录在对象头中,对象头如下图所示。...在运行期间,Mark Word里面存储的数据会随着锁标志位的变化而变化。Mark Word可能变为存储以下4种数据,如下图所示 锁的膨胀和升级 锁的升级和膨胀时候不可逆转的。...AQS 队列结构如下所示,它的本质是一个 FIFO 的线程安全的同步队列,如下图所示: ReetrantLock 加锁和解锁的过程如下图所示: 使用方式 ReetrantLock 的使用方式如下,主要是有三个步骤...StampedLock 上面我只是列举了一部分,对于 ReetrantLock 来看可以说是并发包中非常基础的类,也是我们学习并发的基础,在后续的文章中我会给展开做更加深入的分析。...对于自增或者原子数据累计我们可以使用 Unsafe 提供的原子类,比如 AtomicInteger , AtomicLong 对于数据库的话,对于用户金额扣除的场景我们可以使用乐观锁的方式来进行控制,SQL

    55920

    如何设置根据不同的IP地址所在地域访问不同的服务?

    方案 方案一: 阿里云域名解析时,提供了域名解析业务,针对于不同的客户端,解析到不同的服务上。...这种方案可以不过多解释,就是浏览器的IP不同,解析到的服务器不同同一个服务器,所以部署两套不同的服务即可。...2.自己构建可使用的nginx镜像(目前我使用的是这种方法,具体方法后续提供)。 问题3:GeoIP2使用的nginx插件,在MaxMind官网提供的API提示“警告!...MaxMind并 没有 提供对这些API的支持,并没有审查的代码,使用风险由您自己承担。”。 解决方法:忽略。 步骤 目前我应用的是方案二,并使用自建的nginx镜像。...这样中国IP访问的是cn文件夹下的内容,其他国家访问的是根路径下的内容。注意这里测试时, 最好使用实际国外的IP进行测试,使用V**不会起作用 。

    4.1K20

    SpringBoot 根据运行环境选择不同的配置文件

    1.背景 什么是不同的“运行环境配置”? 项目开发中一般会有多套环境,比如: 开发环境 测试环境 UAT测试环境 生成环境 而不同的环境中,软件系统的配置是不一样的。...例如,在测试的时候用测试数据库,而在生产环境用正式的数据。 SpringBoot 的 profile 为我们提供了便利,它支持在不同的环境下配置用不同的配置文件。 2....Profile 的说明 profile 可以让 Spring 对不同的环境提供不同配置的功能,可以通过激活、指定参数等方式快速切换环境。...换句话说,就是我们需要在不同的场景下使用不同的配置,profile的出现就是要解决我们多环境下切换配置复杂的问题。...image.png (3) 代码中 使用注解 @Profile 来 区分 使用 @Profile 注解可以指定类或方法在特定的 Profile 环境生效。 END

    3.1K20

    SpringBoot 中的 Logback 配置:根据环境读取不同配置

    1.背景 SpringBoot 默认使用 Logback 框架作为日志框架。...最近有个想法“由于配置了多环境,比如开发环境,测试环境等,想根据不同环境指定日志文件的存储位置” 2.行动 分下面几个步骤: 第一步:配置多环境 第二步:配置不同环境下的参数 第三步:配置logback...参考:https://www.jianshu.com/p/61758ef6b513 2.2 第二步:配置不同环境下的参数 开发时,是在mac环境下 在 application-dev.yml 下配置...下面是 线上环境的配置,它在linux系统下 在 application-release.yml 下配置: logging: path: /data/logs .... 2.3 第三步:配置logback...的配置文件 打开logback的配置文件 logback-spring.xml ,使用 springProperty 来读取 springboot 中的参数,在这里读取了 logging.path参数。

    3.5K20

    如何根据不同仪器选择适合的电源模块?

    BOSHIDA 如何根据不同仪器选择适合的电源模块?在实验室、工业生产等场合中,电源模块是必不可少的设备之一。电源模块的作用是将输入电能转换成所需要的电压和电流,为各种仪器设备提供恰当的电源。...不同的仪器设备对电源的要求不同,因此在选择电源模块时需要根据具体的情况进行选择。下面就介绍一下如何根据不同的仪器设备选择合适的电源模块。1....(2)输出功率:根据所需输入功率和效率,选择适合的电源模块。功率过小无法满足需要,功率过大反而浪费电能。(3)压降:在电源模块的输出端,在负载电流变化的时候会产生一定的压降。...这个压降会影响电源的稳定性和安全性,因此需要注意选择低压降的电源模块。2. 型号选择选择电源模块时,还需要根据不同的仪器设备的特殊需求选择合适的型号。...在实际使用中,还需要根据具体情况进行选择。在选择电源模块时,首先需要了解所需电源的特殊要求,其次需要根据总体考虑和型号选择,选择适合的电源模块,以确保仪器设备的正常运行。

    17920

    教你使用“百度统计”黑科技,根据不同维度分析网站的访问质量

    image.png 废话不多说,先上几张百度统计的分析效果图: ? 实时访客明细: ? 今日流量: ? 跳出率指的是只访问了入口页面(例如网站首页)就离开的访问量与所产生总访问量的百分比。...跳出率计算公式:跳出率=访问一个页面后离开网站的次数/总访问次数。 这个值是越低越好。 ? 浏览量(PV)、访客数(UV) ? 新老访客统计 ? 入口页面 ? 访客年龄分布 ? 访客地域分布 ?...既然这个网站这么厉害,那我们如何使用呢? 站长以帝国CMS为例! 网站地址: https://tongji.baidu.com 使用之前,肯定要先注册百度帐号的啦!...点击“增加模板变量”,按下图填写信息,变量值填刚才在百度统计中复制的代码,并提交模板 ? 第三步:引入模板 在其他模板(主要是内容模板)中引入上面新增的模板,以默认新闻内容模板为例: ?

    1.9K30

    X#中如何根据不同的区域设置显示项目资源中不同语言的文件

    这里所说的区域设置,应该是 OS 的区域设置,换句话说,是中文环境还是其他语言的环境。...上一篇解释了如何将窗体控件的 Text (按照 VFP 习惯的说法,就是控件的 Caption)实现多语言的方法,今天来看一下控件根据不同的区域设置显示不同语言文件内容的方法。...一个英文的,一个中文的。假设,它们分别是 Warning.rtf 和 Warning_CN.rtf。...打开 VS IDE,创建基于模板的项目,如下图所示: 我将项目命名为 Demo 更改项目属性,将所使用的方言更改为 Visual FoxPro,并更改“语言”和“方言”中的选项以“适配”所选方言。...在项目中添加“现有项”--事先准备好的RTF文件。 然后在项目属性的资源中,也添加这两个文件。

    6210
    领券