python-策略模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns 说明: 策略指的就是为了达到某一目的而采取的手段或者方法。为了实现软件设计咪表,对象可能会用到多种多样的算法。这些算法甚至会经常改变。如果将这些算法都硬编码到对象中,将会使得对象本身变得臃肿不堪,而且有时候支持不同的算法也是一个性能负担。策略模式很好的实现了在运行时根据需要透明的更改对象的算法和将算法与本身对象解耦,从而避免出现上述两个问题。 因此策略模式可以定义为: 定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户变化。每一个封装算法的类称之为策略(Strategy)类,策略模式提供了一种可插入式(Pluggable)算法的实现方案 策略模式的结构 策略模式包含以下3个角色: Context(环境类) Strategy(抽象策略类) ConcreteStrategy(具体策略类) 实例: 假设某司维护着一些客户资料,需要在该司有新产品上市或者举行新活动时通知客户。现通知客户的方式有两种:短信通知、邮件通知。应如何设计该系统的客户通知部分?为解决该问题,我们先构造客户类,包括客户常用的联系方式和基本信息,同时也包括要发送的内容。 class customer: customer_name="" snd_way="" info="" phone="" email=""…