0
據說循環依賴是壞的和反模式。所以我的問題是下面的代碼有什麼問題?它是否是一個循環依賴的例子?代碼是python僞代碼,但應該被理解。它是循環依賴嗎?
class Manager:
_handlers = []
def on_config(self):
# do something...
# and notify about "event"
for handler in self._handlers:
handler()
def add_change_handler(self, handler):
self._handlers.append(handler)
def get_value(self):
return some_value
class Consumer:
def __init__(self, manager):
self._manager = manager
self._manager.add_change_handler(self._on_event)
def _on_change(self):
print('Got event')
def do_something(self):
self._manager.get_value()
所以:消費者得到經理:
- 的get_value從中
- 爲LITENING註冊上改變事件
從傢伙是針對解決方案是爭論最好創建其他類,它會:
- 知道經理和消費者
- 監聽配置事件
- 通話消費者的on_change處理
- 消費者將使用管理員只的get_value
這並不算作* 「依賴」 *。這可能是一種循環關係,但不是依賴關係。 – deceze
代碼中沒有循環依賴。 –
好的,謝謝。但是,設計是否有缺陷?如果它有什麼問題?在最終解決方案中提出的更好的選擇? – user2146414