Как называется шаблон проектирования, в котором класс предоставляет свой метод или свойство частному сотруднику через делегата?Это в 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);
Я думаю, что это было бы полезно в шаблоне состояний, чтобы государства могли обновлять свои контексты безтребование контекста выставить материал через открытый интерфейс или вложить классы состояний в класс контекста.