我有一個類:DatabaseService.as該類創建一個本地sqlite連接並創建表(如果它們不存在)。連接鏈接將被其他幾個類使用。有些類會在用戶交互時啓動其他類。 「數據庫服務」類在數據庫連接打開時調度事件。其他類初始化「DatabaseService」類並等待「DatabaseReadyEvent」。 這很好,但我需要多次調用同一個類中的函數/方法時該怎麼辦?Actionscript OOP多方法調用體系結構問題
實施例:
創建在MXML組件 「PrefService」 類的實例。 「PrefService」在其構造函數中創建一個新的「DatabaseService」類。然後等待「DatabaseReadyEvent」並執行sql查詢(這工作正常)。但是接下來我還需要在「PrefService」類中調用「addDir」方法(以及其他幾個方法),並且sqlConnection屬性尚未設置,從而導致錯誤。我該如何處理這個問題?我是新來OOP,所以我可能失去了一些東西很簡單......
我已經試過/我的想法:
我可以檢查是否在SqlConnection的「PrefService」類,但我存在認爲這將是不好的做法,仍然需要某種延遲機制。
我也可以爲每個方法創建一個「DatabaseService」類的新實例,並添加一個新的事件偵聽器,但這對於每個方法調用不提及事件的2個函數都會非常麻煩。
這種情況下最好的選擇是什麼?
感謝您的回覆。我擔心我將不得不深入研究設計模式:)看起來像是對單身人士很討厭的東西,會更多地閱讀設計模式,也許我會使用代理,謝謝! – DominicM
你不會後悔花時間學習設計模式;只要記住它們只不過是針對常見編程問題的嘗試和測試解決方案。在這個階段,我不會過分擔心Singleton模式所帶來的不好的壓力(我只是認爲這不應該提及它)。如果它有助於解決您的問題,那麼我會建議您使用它,如果不是,則使用另一種方法(代理模式可能很適合)。 –
我可能會使用單例作爲DatabaseService,因爲它只需要一個實例,像其他模式的代理模式對於OOP noob來說並不是那麼簡單:) – DominicM