在设计模式中,如果一个类通过委托向协作对象公开私有方法或属性,这种模式叫什么名字?这个问题是关于C#的,但对其他编程语言也可能适用。
例如:
class Foo
{
public int X
{
get;
private set;
}
public void UpdateX(Bar bar)
{
bar.UpdateX(x => this.X = x);
}
}
class Bar
{
public void UpdateX(Action<int> setter)
{
setter(7);
}
}
Foo foo = new Foo();
Bar bar = new Bar();
foo.UpdateX(bar);
我认为这在状态模式中将非常有用,因为它允许状态更新其上下文而无需通过公共接口暴露内容,也不需要将状态类嵌套在上下文类中。