首页新闻找找看学习计划

关于MVP模式的一个疑问

0
悬赏园豆:60 [已解决问题] 解决于 2013-06-28 12:47

在看蒋金楠老师的博文

学习MVP这个模式的时候有几句代码看得不是很明白

         protected virtual object CreatePresenter()
        {
             //这里不太清楚,不明白LicenseManager这个类有什么用的
             if (LicenseManager.CurrentContext.UsageModel == LicenseUsageModel.Designtime)
             {
                 return null;
             }
             else
             {
//这里是在子类没有重写的时候就抛出异常
throw new NotImplementedException(string.Format("{0} must override the CreatePresenter method.", this.GetType().FullName)); } }

这段代码的本意应该是要子类去重写这个方法,以生成各自需要的Presenter,如果没有重写就抛出异常。

还有为何不直接在父类抛出异常,反正到时 parent p = new child() 的时候调用的也是子类的方法,子类没有重写也是会报错的嘛。

 

许可证管理.当前上下文.用法模型 == 许可证用法模型.设计时?

LicenseManager.CurrentContext.UsageModel == LicenseUsageModel.Designtime
灰机_不会飞的主页 灰机_不会飞 | 初学一级 | 园豆:8
提问于:2013-06-28 00:20
< >
分享
最佳答案
0

只是开发设计时方便,你可以不要它 直接 抛出异常也行的

收获园豆:60
Yu | 专家六级 |园豆:12944 | 2013-06-28 10:31
那这段代码的用处是什么呢,关于LicenseManager这个类的信息很少而且不好理解
LicenseManager.CurrentContext.UsageModel == LicenseUsageModel.Designtime
灰机_不会飞 | 园豆:8 (初学一级) | 2013-06-28 10:33

@灰机_不会飞: 如果不加这个 在设计视图时,就会有异常,就看不到视图界面了

Yu | 园豆:12944 (专家六级) | 2013-06-28 11:04

@Yu: 试了一下果然如此,谢谢你的耐心解答!

灰机_不会飞 | 园豆:8 (初学一级) | 2013-06-28 12:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册