策略模式
示例:
商场收银软件---营业员根据客户所购买商品的单价和数量,向客户收费。
商场会不定期的举行各种活动,如 满100减30, 满200减70, 打8折, 满100积分10点等。
很容易想到用简单工厂模式实现,如下图是简单工厂模式的UML类关系图。
收费类--父类
class CashSuper:
def AcceptCash(self, money):
pass
正常收费子类
class CashNormal(CashSuper):
def AcceptCash(self, money):
return money
折扣收费子类
class CashRebate(CashSuper):
def __init__(self, discount):
self.discount = discount
def AcceptCash(self, money):
return money * self.discount
返利收费子类
class CashReturn(CashSuper):
def __init__(sel