【发布时间】:2010-09-29 02:16:03
【问题描述】:
这是我的代码的概要,它是一个中等复杂的 WinForms GUI。
依赖的上下文是模型视图展示器模式。
public class StatSyncherFormView : Form, IView
{ ... }
public class Presenter
{
// Here is the member I made public
public readonly IView view;
public Presenter(IView view)
{
this.view = view;
}
}
static void Main()
{
IView view = new View();
Presenter presenter = new Presenter(view);
// Here is where I'm accessing the public member
Application.Run((Form)p.view);
}
1) 我喜欢视图仅由构造函数设置并且之后不会被修改的事实。它让我在多线程 GUI 开发环境中感觉更好。
2) 使用public View {get; private set;} 然后我输了(不变性?)。
3) 使用private readonly IView view,我还需要public View {get {return view;}},这感觉(至少对我来说,也许有人可以告诉我)是多余的。
我的问题:我觉得 (3) 是避免使用公共成员的唯一方法,但在这种情况下我不明白它的好处。
我知道这是细节问题,所以提前感谢任何花时间给我建议的人。
【问题讨论】:
标签: c# .net-4.0 class-design