首页 新闻 会员 周边

关于类中的全局对象初始化

0
悬赏园豆:15 [已关闭问题]

一般有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种有区别吗,如果没区别的话,哪种好,为什么呢,请大家不吝赐教,在下先行谢过 

chenleinet的主页 chenleinet | 菜鸟二级 | 园豆:270
提问于:2010-05-21 20:42
< >
分享
其他回答(3)
0

1的初始化在2之前

速度是1稍胜,少了次内存至0的操作

要有更多逻辑的话只能是2

Gray Zhang | 园豆:17610 (专家六级) | 2010-05-22 00:03
0

第一种将成员放到构造函数实例化,初始化的顺序是:构造函数->结束,构造函数里面去初始化view和Service成员。

第二种直接初始化成员,初始化的顺序是:先执行成员初始化->然后再构造函数。

DeguangLi | 园豆:207 (菜鸟二级) | 2010-05-22 00:10
0

应该给成员设置默认值。

Astar | 园豆:40805 (高人七级) | 2010-05-22 09:31
0

个人认为你提供的两种方法都存在局限性。

你列的两个方式都意味着Presenter一创建就要同时创建IView 和 IService 。这会给创建Presenter对象工作造成负担,也许你创建Presenter在某些应用场合不一定就会用到IView 和 IService对象,即使用到也不一定是你立马就要使用上这两个对象。

更好地做法是尽量推迟对象创建,直到你确实需要用上这两个对象时才去创建它们。

胡屯 | 园豆:714 (小虾三级) | 2011-11-20 11:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册