首页 > 其他分享 >设计模式-策略模式

设计模式-策略模式

时间:2022-10-09 08:23:25浏览次数:48  
标签:这个 策略 discountStyle 代码 模式 else 然后 计价 设计模式

策略模式,替换掉屎一样的if-else语句。好,那我们来在这里看一下啊,就是整个,这个策略模式呢,它的英文叫做strategy,然后,就给出一个场景吧,还是,这个场景其实也很简单,就是说是,我们可以根据不同的这个参数,来选择一种,然后我们,来选择一种我们想要执行的这个优惠计价方式,可以看一下,这句话换成代码的话,怎么来做,先看一下那个不用模式的一个方式啊,WithoutStartegyPatternDemo,然后这块的话,它是这样的,我们就直接来写一段代码吧。

有一个参数,是discountStyle,如果这个参数是1,那么选择一种这个优惠计价的方式,如果这个参数是2,选择一种优惠计价的方式,然后那个,如果参数是3,选择一种优惠计价的方式,那么这个怎么玩,比如说我们这discountStyle=1,假设说这个代码是这么写的,discountStyle,如果说它等于1,选择那个执行优惠计价方式1的那个复杂业务逻辑,然后这边,else if(discountStyle == 2),然后这边是,System.out.println("执行优惠计价方式2的复杂业务逻辑");,然后这边else if(discountStyle == 3){ System.out.println("执行优惠计价方式3的复杂业务逻辑");},ok,就是这样一段代码,非常非常的常见啊。但是实际上,我这里写的很短,但实际上在我们的业务代码中,这个if-else看起来,绝对不是这么短的,然后第二的话呢,就是它也不是那个,就是这么简单吧,对吧。那么在实际的业务代码中,常见的结构是上面这样的,但是每个if和这个if-else之间的这个代码行数,可能多达几十行,甚至几百行,ok,然后另外的这个if和else if的这个判断条件,很模糊,经常就是用一堆这种变量,然后变量的这种比较,来判断是哪个分支,就是类上面这种代码,在代码写好以后,一年之后,回过头来看这个代码,我撒,好像是看到了一坨屎一样,大家不要笑啊,我为什么老是说屎一样的代码,因为就是咱们说话的时候,别说虚的,说点干的,就是这种写出来很差的代码就是跟屎一样,这代码它就是屎,为什么屎呢,因为像这样的代码

 

 

end

标签:这个,策略,discountStyle,代码,模式,else,然后,计价,设计模式
From: https://www.cnblogs.com/HarryVan/p/16770879.html

相关文章

  • 关于贪心策略的一些小trick
    为什么要写这种如此简单的东西呢就是因为菜啊首先给出关于贪心的三个定义符合贪心选择的特性(GreedyChoiceProperty)我们需要证明我们的第一个选择(贪心选择GreedyCho......
  • 10月8日内容总结——文件操作之文本模式和二进制模式、文件内光标的移动
    目录一、文件操作1、概念讲解2、通过代码打开文件的两种方式方式一:方法二:一些小知识点总结:二、文件的读写模式1、只读模式(r)2、只写模式(w)3、只追加模式(a)三、文件的操作模式......
  • 文件操作/模式
    目录今日内容概要1.文件操作2.文件读写模式3.文件操作模式:4.文件操作方法5.练习题及答案今日内容概要文件操作文件读写模式文件诸多方法文件内光标的移动练习题及答......
  • 设计模式-组合模式
    对层级数据递归调用执行操作。先说一下这个组合模式是composite,然后说一个场景,这个模式然后按照一个什么场景来做呢,举个例子,有一颗部门树,然后父部门有这个子部门,然后又有子......
  • 文件的操作方式以及读写模式
    1.文件的概念2.文件的操作方式3.文件的读写模式4.文件操作模式5.文件诸多方法6.文件内容修改7.文件光标移动###文件操作```python1.文件的概念文......
  • Lambda表达式实现方式、标准格式、练习、省略模式、注意事项及和匿名内部类的区别
    目录​​一、Lambda表达式实现方式​​​​二、Lambda表达式的标准格式​​​​三、Lambda表达式练习​​​​四、Lambda表达式的省略模式​​​​五、Lambda表达式的注意事......
  • 字符串的模式匹配
    字符串的模式匹配就是在主串中找到子串。基本方法一,是一趟一趟地比较。但是可能引起回溯,从而浪费时间,引起回溯的原因是,主串中从在和子串部分匹配的子串,这样就欺骗了程序......
  • 系统架构模式
    软件架构师和开发人员使用许多体系结构模式。以下是一些模式(混合体系结构样式和体系结构模式)::简单CRUD、单层级、单层。传统N分层。域驱动设计N分层。清......
  • docker网络模式分类
    docker有四种网络模式bridge模式host模式container模式none模式Docker跨host网络:overlay、macvlan......
  • 08-Go设计模式-外观模式
    外观模式示例代码/*外观模式根据迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。Facade模式也叫外观模式,是由GoF提出的23种设计模式......