首页 > 代码库 > 命令模式
命令模式
模式说明
将请求封装成对象,从而使可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。
模式结构图
程序示例
说明:调用者是遥控器,接受者是电视
代码:
class TV(object): def open(self): print ‘turn on tv‘ def close(self): print ‘turn off tv‘ def changeChannel(self): print ‘change channel‘class Command(object): _tv = TV() def __init__(self,tv): self._tv = tv def execute(self): passclass TurnOnCommand(Command): def execute(self): self._tv.open()class TurnOffCommand(Command): def execute(self): self._tv.close()class ChangeChannelCommand(Command): def execute(self): self._tv.changeChannel()class Controller(object): #_turnon = None #_turnoff = None #_changechannel = None def __init__(self,turnon,turnoff,changechannel): self._changechannel = changechannel self._turnon = turnon self._turnoff = turnoff def open(self): self._turnon.execute() def close(self): self._turnoff.execute() def changechannel(self): self._changechannel.execute()if ‘__main__‘ == __name__: tv = TV() turnon = TurnOnCommand(tv) turnoff = TurnOffCommand(tv) changechannel = ChangeChannelCommand(tv) controller = Controller(turnon,turnoff,changechannel) controller.open() controller.changechannel() controller.close()
运行结果:
参考来源:
http://www.cnblogs.com/chenssy/p/3679190.html
http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html
http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html
命令模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。