c# – 这个设计模式的名称是什么(通过委托向协作者公开私有方法)?

设计模式的名称是什么类通过委托向协作者公开私有方法或属性?这是在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);

我认为这在状态模式中很有用,允许状态更新其上下文而不需要上下文通过其公共接口公开内容,或者在上下文类中嵌套状态类.

最佳答案 我没有看到任何模式,但它打破了封装.

如果你有一个只读的财产,所以你为什么要绕过它.

点赞