我正在編寫相當大且複雜的應用程序,所以我想堅持設計模式以保持代碼質量。我有一個需要幾乎所有其他實例可用的實例的問題。Python應用程序設計模式 - 實例必須適用於大多數其他實例
比方說,我有BusMonitor(用於記錄消息的類)的實例以及使用此實例記錄動作的其他實例,例如,解析來自網絡協議的傳入幀的Reactor,並根據幀記錄不同的消息。
我有一個創建BusMonitor,Reactor和更少的實例的主要實例。 現在我想讓Reactor能夠使用BusMonitor實例,我該如何根據設計模式來做到這一點?
設置它作爲反應器中的變量似乎醜對我來說: self._reactor.set_busmonitor(self._busmonitor)
我會做,對於每個需要訪問BusMonitor實例。導入這個實例似乎更糟。
雖然我可以使BusMonitor作爲Singleton,我的意思不是類,但作爲模塊,然後導入此模塊,但我想保留在類中的東西,以保持一致性。
什麼方法是最好的?
將其設置爲變量有什麼問題?你爲什麼覺得這很醜? – 2012-07-06 11:43:20
嗯我不確定這是否是好方法,不會在將來腐爛嗎?或者看看這個例子。我有gui接口的主要實例,它不需要訪問busmonitor,這個gui會生成標籤實例,標籤會創建一些更深層的小部件,然後我們會到達實例需要訪問busmonitor的點,現在我必須將busmonitor作爲變量從上到下傳遞給每個實例,以便能夠通過它。 – 2012-07-06 12:11:24
嗯...小部件可能會要求父母給他的對象,父母會問其父母等等。 – 2012-07-06 12:39:31