商场经常在节日期间做出不同的促销计划,因此商场的计费机制要不停地变动,因此在设计时应该考虑使用策略模式
策略模式(Strategy),策略模式定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。
通过UML图来说事:
其中CashContext算是一个简单工厂吧。现在有些理解简单工厂了,其实并不是一个设计模式,只是多态的使用而已(个人理解,欢迎指正)。
下面看看用vb.net如何实现:(实现的和《大话》上写的不太一样,我觉得这样写更方便一些)
其实仔细看这个模式会发现其中只是运用了面向对象中的两个机制:
一、多态
二、封装。
只不过这是将多态和封装组合起来使用,就像是搭积木一样。