#!/usr/bin/env pythonclass Processor: def __init__(self, processor): self.processor = processor def isAllowSend(self, message, setChargeFlag): passclass WhildListProcessor(Processor): def isAllowSend(self, message, setChargeFlag): if message.sender in (1,2): return True if self.processor != None: return self.isAllowSend(message, setChargeFlag)class DateProcessor(Processor): def isAllowSend(self, message, setChargeFlag): if message.date > "20130101": return False if self.processor != None: return self.isAllowSend(message, setChargeFlag) class DefaltProcessor: def isAllowSend(self, message, setChargeFlag): setChargeFlag(message) return True def getProcessor(): return WhildListProcessor(DefaltProcessor(None))class Message: def __init__(self, sender, ): self.sender = sender self.isSend = False self.isCharge = Falsedef setChargeFlag(message): message.isCharge = Truedef setSendFlag(message): message.isSend = Truedef run(self): message = Message(10) processor = getProcessor() if (processor.isAllowSend(message, setChargeFlag)): setSendFlag(message)