一般有2种方式:
1
private IView _view;
private Model _model;
private IService _service;
public Presenter()
{
_view = new View();
_service = new Service();
}
2
private IView _view;
private Model _model_view = new View();;
private IService _service _service = new Service();;
请问这2种有区别吗,如果没区别的话,哪种好,为什么呢,请大家不吝赐教,在下先行谢过
1的初始化在2之前
速度是1稍胜,少了次内存至0的操作
要有更多逻辑的话只能是2
第一种将成员放到构造函数实例化,初始化的顺序是:构造函数->结束,构造函数里面去初始化view和Service成员。
第二种直接初始化成员,初始化的顺序是:先执行成员初始化->然后再构造函数。
应该给成员设置默认值。
个人认为你提供的两种方法都存在局限性。
你列的两个方式都意味着Presenter一创建就要同时创建IView 和 IService 。这会给创建Presenter对象工作造成负担,也许你创建Presenter在某些应用场合不一定就会用到IView 和 IService对象,即使用到也不一定是你立马就要使用上这两个对象。
更好地做法是尽量推迟对象创建,直到你确实需要用上这两个对象时才去创建它们。