• 设计模式 命令行模式


    class TeaMilk:
        def __init__(self):
            pass
        def prepare(self):
            pass
    
    class Recevier:
        def __init__(self):
            pass
        def prepareRedTeaMilk(self):
            print('prepare red tea milk')
    
        def prepareBlackTeaMilk(self):
            print('prepare black tea milk')
    
    class RedTeaMilk(TeaMilk):
        def __init__(self, Recevier):
            self.recevier = Recevier
        def prepare(self):
            self.recevier.prepareRedTeaMilk()
    
    class BlackTeaMilk(TeaMilk):
        def __init__(self, Recevier):
            self.recevier = Recevier
        def prepare(self):
            self.recevier.prepareBlackTeaMilk()
    
    class waiter:
        cmd = []
        def __init__(self):
            pass
        def order(self, milk):
            self.cmd.append(milk)
    
        def remove(self, milk):
            print('remove obj', milk)
            self.cmd.remove(milk)
    
        def execute(self):
            print(self.cmd)
            for i in self.cmd:
                i.prepare()
    
    if __name__ == '__main__':
        waiter = waiter()
        recevier = Recevier()
        redTeaMilk = RedTeaMilk(recevier)
        blackTeaMilk = BlackTeaMilk(recevier)
        waiter.order(redTeaMilk)
        waiter.order(blackTeaMilk)
        waiter.execute()
        waiter.remove(blackTeaMilk)
        waiter.execute()
    

    命令行模式:

          把一个个请求封装成一个个对象,加入一个invoker,

    • command抽象命令类
    • ConcreteCommand具体命令类
    • Invoker调用者/请求者
      • 请求的发送者,它通过命令对象来执行请求。一个调用者并不需要在设计时确定其接受者,因此它只与抽象命令之间存在关联。在程序运行时,将调用命令对象的execute(),间接调用接收者的相关操作。
    • Receiver接收者
      接收者执行与请求相关的操作,具体实现对请求的业务处理。未抽象前,实际执行操作内容的对象
    • Client客户类
      在客户类中需要创建调用者对象、具体命令类对象,在创建具体命令对象时指定对应的接收者。发送者和接收者之间没有直接关系,都通过命令对象间接调用。

  • 相关阅读:
    MySql中子查询,左链,右链,内链,关键字join
    MySql数据库约束,主键和外键约束的添加删除,代码实现,sql语句实现
    MySql查询,聚合函数,分组,分页,排序等复杂查询
    DQL简单语句和条件语句
    django vue
    离线部署Django工程
    数据处理与分析实战小案例系列(一)
    Python常用功能函数总结系列
    Python常用功能函数系列总结(六)
    Python常用功能函数系列总结(五)
  • 原文地址:https://www.cnblogs.com/agang-php/p/9945587.html
Copyright © 2020-2023  润新知