我有一个接口 IFoo,我想为其提供一个默认实现 Foo。Foo 可以被其他实现 IFoo 的类用作包含的类/组件。
IFoo 被几个类使用,这些类主要通过转发对 Foo 的调用来实现它,但对于某些方法,它们可能会提供自己的实现。
Foo 需要访问调用类的(私有)成员。
在方法调用中将这些成员作为参数传递是不可能的,因为它们不是(也不应该是) IFoo 接口的一部分。
仅出于此目的向这些成员提供公共属性是不受欢迎的,因为这会使调用类的接口过于复杂。
问题是:让 Foo 访问这些成员的良好设计是什么,或者这通常是如何实现的?是否有任何已知的设计模式?
编辑:继承不是一个选项,因为实现 IFoo 的类不能从同一个类继承。