设计模式之策略模式
2016-06-15 00:00
671 查看
摘要: 策略者模式: 定义了一个公共接口,根据不同的行为实现这个接口,使用Context调用封装的接口。
策略者模式思想:面向接口编程,而不是面向实现编程。
1. 公共接口:
2. 根据上面定义的接口实现:
3. 实现context,封装不同行为的接口。
4. 使用
5. 所有代码:
运行结果:
策略者模式思想:面向接口编程,而不是面向实现编程。
1. 公共接口:
class MDCash: def acceptCash(self): return
2. 根据上面定义的接口实现:
# 正常 class MDCashNormal(MDCash): def acceptCash(self, params): return params # 返5 class MDCaseReturn(MDCash): def acceptCash(self, params): return params - 5 # 打9折 class MDCashRobate(MDCash): def acceptCash(self, params): return params - params * 0.1
3. 实现context,封装不同行为的接口。
class MDCashContext: def __init__(self, cashStrategy): self.cashStrategy = cashStrategy def performPay(self, params): print self.cashStrategy.acceptCash(params)
4. 使用
if __name__ == '__main__': context = MDCashContext(cashStrategy=MDCaseReturn()) context.performPay(100) context = MDCashContext(cashStrategy=MDCashNormal()) context.performPay(100) context = MDCashContext(cashStrategy=MDCashRobate()) context.performPay(100)
5. 所有代码:
#encoding:utf-8
class MDCash: def acceptCash(self): return
class MDCashNormal(MDCash):
def acceptCash(self, params):
return params
class MDCaseReturn(MDCash):
def acceptCash(self, params):
return params - 5
class MDCashRobate(MDCash):
def acceptCash(self, params):
return params - params * 0.1
class MDCashContext: def __init__(self, cashStrategy): self.cashStrategy = cashStrategy def performPay(self, params): print self.cashStrategy.acceptCash(params)
if __name__ == '__main__':
context = MDCashContext(cashStrategy=MDCaseReturn())
context.performPay(100)
context = MDCashContext(cashStrategy=MDCashNormal())
context.performPay(100)
context = MDCashContext(cashStrategy=MDCashRobate())
context.performPay(100)
运行结果:
95 100 90.0
相关文章推荐
- 深入理解C++之策略模式
- 详解JavaScript的策略模式编程
- javascript设计模式--策略模式之输入验证
- 学习JavaScript设计模式(策略模式)
- 学习php设计模式 php实现策略模式(strategy)
- C# 设计模式系列教程-策略模式
- C++编程中使用设计模式中的policy策略模式的实例讲解
- 关于.NET Framework中的设计模式--应用策略模式为List排序
- 学习JavaScript设计模式之策略模式
- Java策略模式的简单应用实现方法
- Java设计模式之策略模式(Strategy模式)介绍
- 详解Java编程中的策略模式
- 详解Java设计模式编程中的策略模式
- 对比Java设计模式编程中的状态模式和策略模式
- java实现策略模式使用示例
- iOS应用运用设计模式中的Strategy策略模式的开发实例
- 我理解的--java策略模式
- 设计模式-策略模式
- 策略模式学习
- 策略模式之一