我想知道这是一个愚蠢的问题,不管是什么......
考虑:
this.dataSourceFacade = new DataSourceFacade();
this.SomeGrid.DataSource = this.dataSourceFacade.GetData();
与之比较:
this.SomeGrid.DataSource = new DataSourceFacade().GetData();
第二种方法有什么问题,假设它是唯一被使用的地方吗?
理查德
答案 0 :(得分:0)
第二种方法,
this.SomeGrid.DataSource = (new DataSourceFacade()).GetData();
如果您以后需要它,您将失去对DataSourceFacade
对象的引用,例如设置其他东西,获取其他东西,或调用该对象的方法。
答案 1 :(得分:0)
从长远来看,它确实使代码更易于阅读和维护。这也应该是“好”。
但是,您只是为了调用对象的一个方法而创建对象的实例,我会质疑是否可以将该方法拉出到静态方法中。
像这样:
this.SomeGrid.DataSource = DataSourceFacade.GetDate();
同样在静态实现中,我会尝试不实例化不会使用的对象实例,如果可能的话。
答案 2 :(得分:0)
至少我会创建一个工厂来做这样的事情
this.SomeGrid.DataSource = DataSourceFacade.GetDataSource();
或
this.SomeGrid.DataSource = DataSourceFacade.Factory.GetDataSource()
至少通过这种方式,您可以添加以后以某种方式更新工厂以进行测试的功能。
答案 3 :(得分:0)
简短而简单:第二种方法没有任何问题...在大多数情况下甚至更好,因为更干净(没有不必要的局部变量),更好地阅读+维护: - )