第2章 商场促销——策略模式

1、类设计经验积累

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

2、所谓策略模式

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

3、 使用简单工厂模式实现商场促销

在这里插入图片描述

4、使用策略模式实现商场促销

(1)策略模式类图

在这里插入图片描述

(2)策略模式实现商场促销

在这里插入图片描述

实例化一个策略上下文对象,向其传递一个策略(也可以向其传递一个参数,在其内部自动生成一个策略,这便是工厂模式结合策略模式。)。

策略上下问对象,会根据客户端传递的参数,使用初始化上下文对象的策略进行处理用户传递的参数,并返回一个结果。

(3)策略模式和工厂模式结合实现商场促销

策略上下文对象中必须要有一个策略,

  • 这个策略可以不外部传递过来的。(单纯的策略模式)
  • 也可以是根据外部传递的参数在内部的成员函数自动生成的。(工厂与策略的结合)

对于第二点的详尽解释:
实例化策略上下文对象时,可以不向它传递策略,而是传递一条信息,并且需要在它写一个函数,这个函数内部可以根据这条信息实例化一个策略。然后策略上下文对象可以根据这个策略进行计算。这就是工厂模式和策略模式的结合。

所谓的策略实际就是一个算法类对象,或者说一个函数类对象。

posted @ 2019-12-19 21:05  江南又一春  阅读(141)  评论(0编辑  收藏  举报