デフォルトの実装Fooを提供したいインターフェースIFooがあります。Fooは、IFooを実装する他のクラスによって含まれるクラス/コンポーネントとして使用できます。
IFooは、ほとんどがFooに呼び出しを転送することによって実装するいくつかのクラスで使用されますが、一部のメソッドでは、独自の実装を提供する場合があります。
Fooは、呼び出し元のクラスの(プライベート)メンバーにアクセスする必要があります。
これらのメンバーはIFooインターフェイスの一部ではないため(また、そうであるべきではないため)、メソッド呼び出しで引数として渡すことはできません。
この目的のためだけにこれらのメンバーにパブリックプロパティを提供すると、呼び出し元のクラスのインターフェイスが非常に複雑になるため、望ましくありません。
問題は、Fooがこれらのメンバーにアクセスできるようにするための優れた設計とは何か、またはこれは通常どのように達成されるのかということです。このための既知のデザインパターンはありますか?
編集:IFooを実装するクラスは同じクラスから継承できないため、継承はオプションではありません。