簡體   English   中英

使用回調滿足依賴性的缺點是什么? 而且,這是反模式嗎?

[英]What are the drawbacks to using callbacks for satisfying dependencies? And, is this an anti-pattern?

我有兩個模塊:

#module_a

def make_a(cb = None):

    global a

    a = 1 # It takes a very long time to make "a", so it is stored as a global in module_a.

    if cb != None:

        cb()

和,

#module_b

import module_a

def make_b():

    global b

    #In order to make "b", we need module_a.a, however there is no guarantee it has been made.
    if 'a' not in dir(module_a):

        module_a.make_a(make_b)

        return

    else:

        b = module_a.a + 1

make_b()

print(b) # 2

在上面的代碼中,函數make_bmodule_b使得命名的東西b ,它依賴於一個名為東西amodule_a 為了滿足其依賴性,它使用make_a的回調調用make_b 一旦創建a ,則再次調用make_b並生成b

這種模式對我來說很有意義,但是我想知道這是執行此操作的公認方法還是反模式。

是否有更規范的方法來滿足Python中的這種依賴關系,即Pythonic方式?

要以“ Pythonic”方式執行此操作,您應該引入一個Observer模式,該模式一旦計算出a便會發出事件,並且b應當訂閱a以便在a完成后被調用。

這里有一個觀察者的例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM