在我當前的應用程序中,爲了實現觀察者模式,我使用了「自制」的Observable類。觀察者(實現一個接口)可以聽某些事件。何時使用IoC容器註冊觀察員?
我將越來越多的項目切換到使用IoC容器,但是我沒有找到在代碼中註冊觀察者的好地方。
的方法可以做到這一點,我看到的是:
A)注射到觀察的觀察者。
構造函數不應該做實際工作,但即使使用方法或字段注入,也會將觀察者與observable耦合。如果是相反的話,情況也是如此。 B)創建一個可觀察的工廠並在那裏執行。
在這種情況下,創建observable取決於幾個觀察者的實現。
C)按工廠創建觀察者並在那裏執行。
雖然這對我來說似乎是最好的耦合,但對於DRY來說,結果不好。在某些情況下,工廠最終會成爲觀察者的字段和構造函數的副本,再加上可觀察值以及註冊的一行代碼。
有沒有辦法以一種乾淨的方式處理這種註冊?如果不是的話,是否有一些令人信服的論據來對其他人採用某種方式?