2
這確實是一個高層次的最佳實踐問題,但我懷疑我使用的語言可能會影響答案(無構造函數)。輔助接口使用主要接口屬性 - VBA/VB6
利用類的主要屬性來處理輔助接口方法很常見嗎? 或者換句話說,二級實現可以知道類的內部狀態和屬性嗎?
即..
Class MyClass
Implements MyInterface
Private m_MyState as String
Private Sub MyInterface_DoSecondaryStuff
Debug.Print m_MyState
End Sub
很抱歉,如果這是一個noob問題,但我沒有編程或經常創建輔助接口的機會。
也許是一個壞榜樣,但你必須設想一些我想的東西。我沒有看到這樣做的任何問題,並且在很多情況下,您別無選擇,否則實現的界面的成員無論如何都變得毫無意義。幾乎沒有階級是無國籍的。 – Bob77
謝謝,鮑勃。我最關心的是使用未初始化的屬性。由於VBA不提供構造函數,我想我會使所需的屬性爲只讀,並使用init方法設置它們。 – wesmantooth
有一種方法可以完成構造函數方法的工作,您可以創建一個類工廠類,您可以調用該類來創建目標類的實例。類工廠調用目標類的Friend方法進行初始化。 – Bob77