关于MVC/MVP/MVVM的一些错误认识
我们做业务模块开发时,会经常定义一些数据结构类,比如个人资料可能会对应一个UserProfile类,一条订单数据可能会对应一个Order类,这些类没有任何逻辑,只有一些简单的getter、setter方法。有些人会认为像UserProfile或者Order这样的数据结构类就是Model。 我们已经强调了,Model层包含了业务数据以及对业务数据的操作。像UserProfile或者Order这样的数据结构类的实例甚至都不能称之为对象,可以看一下Uncle Bob的Classes vs. Data Structures这篇文章,对象是有行为的,一个数据结构实例没有行为,连对象都称不上,怎么能代表Model层呢! 静态的业务数据不能代表Model层,业务数据以及针对业务数据的操作共同构成了Model层,这也就是业务逻辑。再举个例子说一下吧,假设你在做一个叫“掘铁”的app,这个app现在只有一个页面,用来展示推荐的博客列表。OK,我们如果用MVP的形式该怎么写呢?我们就先不管和Model层完全没有交互的View了,Presenter层除了处理表现层逻辑外,还要向Model层发出业务指令,注意,Presenter并不处理业务逻辑,真正的业务逻辑还是由Model层完成。示例代码大概是下面这样:
(编辑:天津站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |