我想知道这是否是一个愚蠢的问题,但无论如何...
考虑以下内容:
this.dataSourceFacade = new DataSourceFacade();
this.SomeGrid.DataSource = this.dataSourceFacade.GetData();
与之相比:
this.SomeGrid.DataSource = new DataSourceFacade().GetData();
如果只在这里使用第二种方法,有什么不妥之处吗?
理查德
我想知道这是否是一个愚蠢的问题,但无论如何...
考虑以下内容:
this.dataSourceFacade = new DataSourceFacade();
this.SomeGrid.DataSource = this.dataSourceFacade.GetData();
与之相比:
this.SomeGrid.DataSource = new DataSourceFacade().GetData();
如果只在这里使用第二种方法,有什么不妥之处吗?
理查德
第二种方法,
this.SomeGrid.DataSource = (new DataSourceFacade()).GetData();
DataSourceFacade
对象的引用。从长远来看,这确实使得代码更易于阅读和维护。而且这样做应该只是“好的”。
然而,你只是创建了一个对象实例来调用其中一个方法,我会质疑这个方法是否可以被提取为静态方法。
像这样:
this.SomeGrid.DataSource = DataSourceFacade.GetDate();
this.SomeGrid.DataSource = DataSourceFacade.GetDataSource();
或者
this.SomeGrid.DataSource = DataSourceFacade.Factory.GetDataSource()
至少这样你可以添加更新工厂的能力,以便将来进行测试。