资讯专栏INFORMATION COLUMN

设计模式--链式流程处理

flyer_dev / 527人阅读

摘要:应用场景流程审批,顺序链式处理,控制每个子模块执行处理的次数,控制子模块执行顺序。应用通过对一个全链条中的全局变量,全局实例进行赋值修改变量,达到控制子模块是否执行,执行次数,决定下一个是否执行的作用。

1.应用场景:流程审批,顺序链式处理,控制每个子模块执行处理的次数,控制子模块执行顺序。

2.应用: 通过对一个全链条中的全局变量,全局实例进行赋值修改变量,达到控制子模块是否执行,执行次数,决定下一个是否执行的作用。

class Car:
    def __init__(self):
        self.name=None
        self.km=11000
        self.fuel=5
        self.oil=5

def handle_fuel(car):
    if car.fuel<10:
        print("add fuel")
        car.fuel=100
def handle_km(car):
    if car.km>10000:
        print("made a car test")
        car.km=0
def handle_oil(car):
    if car.oil<10:
        print("add oil")
        car.oil=100

class Garage:
    def __init__(self):
        self.handles=[]
    def add_handler(self,handler):
        self.handles.append(handle)
    def handle_car(self,car):
        for handle in self.handles:
            handle(car)

if __name__ == "__main__":

    handlers = [handle_fuel, handle_km, handle_oil]

    garage = Garage()



    for handle in handlers:

        garage.add_handler(handle)

    garage.handle_car(Car())


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44958.html

相关文章

  • promise/deferred 模式原理分析和实现

    摘要:三模式模式其实包含两部分和。六化在编码的时候,想要用进行异步操作流程控制,就要将当前的异步回调函数封装成。 一、什么是promise/deferred 模式 promise/deferred 模式是,根据promise/A 或者它的增强修改版promise/A+ 规范 实现的promise异步操作的一种实现方式。 异步的广度使用使得回调,嵌套出现,但是一但出现深度的嵌套,就会让codi...

    gclove 评论0 收藏0
  • Promise原理分析一

    摘要:原理分析一对象用于异步计算。它有两个参数,分别为在成功和失败情况下的回调函数。实现根据当前状态对回调函数进行处理,同时返回一个新的对象,以便链式调用。,注册回调函数到当前的对象中或,立即执行回调函数说明方法只处理被拒绝的情况,并返回一个。 Promise原理分析一 Promise对象用于异步计算。一个Promise对象代表着一个还未完成,但预期将来会完成的操作。 Note: Promi...

    WilsonLiu95 评论0 收藏0
  • 异步发展流程 —— 手写一个符合 Promise/A+ 规范的 Promise

    摘要:构造函数的实现我们在使用的时候其实是使用关键字创建了一个的实例,其实是一个类,即构造函数,下面来实现构造函数。 showImg(https://segmentfault.com/img/remote/1460000018998456); 阅读原文 概述 Promise 是 js 异步编程的一种解决方案,避免了 回调地狱 给编程带来的麻烦,在 ES6 中成为了标准,这篇文章重点不是叙...

    UnixAgain 评论0 收藏0

发表评论

0条评论

flyer_dev

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<