码迷,mamicode.com
首页 > 编程语言 > 详细

python版本的命令模式

时间:2018-01-25 15:48:00      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:body   ret   on()   int   eth   self   str   blog   ini   

# -*- coding:UTF-8 -*-

import abc


class Command(metaclass=abc.ABCMeta):

    def __init__(self, receiver):
        self._receiver = receiver

    @abc.abstractmethod
    def execute(self):
        pass


class ConcreteCommand(Command):
    def execute(self):
        self._receiver.action()


class Invoker:
    def __init__(self):
        self.__command = None

    def set_command(self, command):
        self.__command = command

    def execute_command(self):
        self.__command.execute()


class Receiver:
    def action(self):
        print("执行请求")


if __name__=="__main__":
    r = Receiver()
    c = ConcreteCommand(r)
    i = Invoker()
    i.set_command(c)
    i.execute_command()

 

python版本的命令模式

标签:body   ret   on()   int   eth   self   str   blog   ini   

原文地址:https://www.cnblogs.com/gjinwei/p/8351116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!