客户端程序开发-MVC框架

时间:2021-09-02 08:39:17

一、什么是MVC设计框架

对于程序开发,尤其是客户端程序开发而言,MVC框架非常实用,C推荐通过观察者设计模式来实现。

MVC的m即model(模型),v即view(视图),c即controller(控制器)。

v是m在屏幕上的表现,c定义v对用户输入的响应方式。一旦m的数据发生变化,m将通知有关的v使之刷新。同一个m可创建不同的v而无需重写m(轻松切换ui)。

一般情况下,view观察model,model是被观察者,通知view改变。但有时候例如网络异常时,model是不改变的,这时候可由controller来负责通知view,这属于被动通知。


二、为什么需要MVC

1. 优良的阅读性和维护性,工程目录结构良好。尤其是半路加入项目组的新同学,会深深体会到 应用mvc与不运用mvc 写出的代码的区别。

2. 解除耦合性。例如 ui和处理数据的逻辑分开,例如可以随心所欲的删除ui文件而不会引起编译失败。

3. 数据层,逻辑层,表现层的分离,提高可复用性和灵活性。效率是关键。


三、怎样实现MVC

整个框架分3个部分:UI部分(对应View),Data部分(对应Model),Manager部分(对应controller)。还有ProtocolEngine,其主要是一个协议调用接口,UI的所有请求都是通过它来实现。按照功能划分,这一部分应该也属于controller的一个子集。 其主要流程为:UI发出一个请求,调用engine里的接口。收到回报后解码将请求结构push到manager那里,如果需要保存数据,manager此时就向data里写入数据,然后通知UI该请求的结果。UI再去判断,如果请求失败(例如网络错误),则做出相应的UI提示,正确则UI通过data里的数据刷新自己。Manager只通知结果,是不负责把回包数据直接返回给UI的。如果返回数据给UI了,那么UI还需要负责向Model写入数据等等一系列逻辑这样当UI需要重新写的时候,就乱了。

四、代码的努力方向

1.做了iphone版本,产品哪天就说更换套UI或者出一个ipad版本的,好的框架是重新写套UI就可以了,modelcontroller模块一行代码都不用修改,更不用在底层做很多的宏定义来区分版本类型(个人觉得这样不是很好维护),。Android的也有手机和pad版本的,这些都涉及到复用。

2.利于项目团队其他成员的合作。提供了一套接口,要简单。通过一个接口的使用,就要明白整个框架的接口使用规则。