作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
类通过委托(delegate)向协作者公开私有(private)方法或属性的设计模式的名称是什么?这是在 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);
我认为这在状态模式中很有用,允许状态更新它们的上下文,而不需要上下文通过其公共(public)接口(interface)公开内容,或者在上下文类中嵌套状态类。
最佳答案
我在这里没有看到任何模式,但它打破了封装。
如果您拥有只读属性,那么您为什么要尝试规避它。
关于c# - 这种设计模式的名称是什么(通过委托(delegate)向合作者公开私有(private)方法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4405923/
我创建了一个 npm几个月前打包, friend 好心帮我把原来的项目打包上传到npm . 现在我是包的所有者,但只有他显示在合作者之下。因为它是我的包,我做了大部分工作,所以我很乐意被提及为合作者。
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我是一名优秀的程序员,十分优秀!