我有一個接口IFoo,我想爲其提供默認實現Foo。 Foo可以用作實現IFoo的其他類所包含的類/組件。用作包含組件的接口的默認實現
IFoo被幾個類使用,主要通過將調用轉發給Foo來實現它,但對於某些方法,它們可能會提供它們自己的實現。
Foo需要訪問調用類的(私有)成員。
將這些成員作爲參數傳遞給方法調用是不可能的,因爲它們不是(也不應該是)IFoo接口的一部分。
僅爲此目的向這些成員提供公共屬性是不必要的,因爲它會使調用類的接口過於複雜。
現在的問題是:讓Foo訪問這些成員的好設計是什麼,或者這通常如何實現?有沒有任何已知的設計模式?
編輯:繼承不是一個選項,因爲實現IFoo的類不能從同一個類繼承。
我想我忘了提到這一點:繼承不是一種選擇,因爲實現IFoo的類不能從同一個類繼承。這是一個多重繼承的情況。 – Peladao
更正。我希望。 – zmbq
這實際上是我正在考慮的其中一種選擇,而且其實很常見。但是,我不覺得它是一個非常優雅的方式,因爲輔助類沒有使用接口,儘管它基本上用作其默認實現。不過謝謝你的描述。 – Peladao