【发布时间】:2010-12-10 05:22:12
【问题描述】:
类通过委托向协作者公开私有方法或属性的设计模式的名称是什么?这是在 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);
我认为这在状态模式中很有用,它允许状态更新其上下文,而不需要上下文通过其公共接口公开内容,或在上下文类中嵌套状态类。
【问题讨论】:
标签: c# design-patterns