美文网首页
第二章 商场促销 - 策略模式

第二章 商场促销 - 策略模式

作者: amazing_s10plus | 来源:发表于2019-07-30 23:42 被阅读0次

实现一个商场的收银程序,根据商品单价、数量,计算总价,生成小票。

关于计价算法,属于经常会变化的部分,比如今天打八折,明天满300减100,后天又打75折等等

先是使用了上一章的简单工厂模式,一个父类提供一个计算总价的方法,不同的计价方法继承这个父类,比如打8折子类,满300减100子类,等等。

面向对象编程,并不是类越多越好,类的划分是为了封装,具有相同属性和功能的对象的抽象几何才是类。

提供一个计费工厂,来创建计费子类的实例,工厂里面和第一章一样,使用switch来判断。

这样可以实现这个需求,但是,简单工厂解决的是对象的创建问题,而且此处的工厂包括了所有的收费方式,商场可能会经常的改变计费方式,这样维护和扩展都需要将工厂重新编译,所以这不是最好的办法。(这里没看懂)

面对经常变动的算法 -- 策略模式。算法是随时可以互相替换的,这就是和上一章简单工厂模式的区别。

(这是策略模式图)

策略模式和在上下文context中,switch来选择创建具体的策略子类,就是把这个上下文context当作工厂来使用,这样就是简单工厂模式和策略模式结合使用了,只需要向客户端暴露一个上下文类即可。

策略模式是一种定义一系列算法的方法,所有这些算法都是完成相同的工作,只是实现不同,它可以用相同的方式调用所有的算法。(这里也没看懂)

老实说这一章讲的吧,我觉得并没有让我很信服策略模式,现在就当入个门,等以后看了其他好书了,再来思考这一章。

相关文章

  • 商场促销-策略模式

    策略模式概念:它定义了算法家族,分别封装起来,让他们之前可以互相替换,此模式让算法的变化,不会影响到使用算法的客户...

  • 第二章 商场促销 - 策略模式

    实现一个商场的收银程序,根据商品单价、数量,计算总价,生成小票。 关于计价算法,属于经常会变化的部分,比如今天打八...

  • 策略模式

    第二章 商场促销 --- 策略模式 首先要理解什么是策略。我个人理解这个词可以理解为解决方案。也就是你解决一个问题...

  • 【设计模式】策略模式之商场促销

    要求 实现一个商场收银软件,营业员根据客户购买的商品单价和数量,向客户收费。 思路 Iter1 初始草稿 每个商...

  • 大话设计模式读书笔记-2策略模式

    第2章 商场促销——策略模式 概念 策略模式定义算法家族,分别封装后,让它们可相互替换,此模式可以让使用算法的用户...

  • Design Patterns Talk - Strategy

    《大话设计模式》第 2 章 - 策略模式 的 Swift 实现。 问题 做一个商场收银软件,根据不同促销方案返回不...

  • 第2章 商场促销--策略模式

    商场收银软件 简单来说,就是根据单价数量计算出总价,同时要应对商场的各种促销活动。例如,打九折,满300减100,...

  • 第2章-商场促销--策略模式

    背景: 商场收银软件,单价、数量、各种折扣活动,向客户收费 小菜: v1.0:输入单价和数量,算出金额并累加到总额...

  • 第2章-商场促销--策略模式

    需求描述 商场收银软件客户端,具备打折、满减等促销活动 共性代码 父类 正常收费 满减收费 打折 简单工厂模式 属...

  • 大话设计模式笔记 - 策略模式

    大话设计模式笔记 - 策略模式 本文的案例是一个商场促销的案例。 我们去商场购物时,结算系统是必不可少的一个环节。...

网友评论

      本文标题:第二章 商场促销 - 策略模式

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