扯两句 MVC 的设计模式

113275951-431e68125bfce626

一个app开发的主要流程可以简单概括为:
搭建UI界面—> 请求服务器数据 —> 把数据展示在UI界面上 –> 处理UI界面的业务逻辑 —> 测试及优化

在编程世界里面大家都知道一句话: 高内聚,低耦合

  • 高内聚,就是指尽量让一个类或者一个方法它专门去处理一个事情,对外只提供一个接口,内部具体如何实现不需要告诉外界.
  • 低耦合,就是减少类与类之间相互的依赖性,降低代码的入侵性,当改变一个类中的一个东西时候,不需要另一个类中也大批量改.

我们在请求网络数据的时候,通常服务器给我们返回都是json或者xml数据,我们利用第三方框架将它解析之后会得到一个字典数组.
这时候如果我们面向字典来开发:
1.这样不太符合我们面向对象开发的伟大思想觉悟
2.由于xcode的原因,在敲字典的key时候系统是不会给我们提示(也就是自动联想功能)的,这样容易造成我们有时候不小心敲错了一个key导致加载不出数据,但是系统又不会报错,代码一多很可能就要花很多时间去找八哥(bug),专业点来讲就是容错率低.

所以为了顺应社会主义发展的步伐,我们需要将字典数组转换为模型数组,也就是将字典转为模型, 这就要扯到MVC这个设计模式了.

MVC是三个单词的首字母缩写, 他们分别是 , 他们分别是, 分别是Model, View, Controller, 也就是模型, 视图, 控制器.

  • Model : 继承NSObject, 负责保存数据.
  • View : 视图控件, 通常用xib来描述它里面的子控件,负责将数据展示在UI界面上
  • Controller : 控制器,负责请求及处理网络数据, 处理用户交互

他们三兄弟的关系如下:

123275951-459ee714c9e8f9ef

这样子,他们三个各司其职, 符合我们高内聚,低耦合的思想.

下面用简单的table view实例来阐述一下MVC的使用,如下图的效果

133275951-79597fd8880b3dde

谁能教教我用markdown放入图片怎么设置图片大小?

143275951-e504d9f372c68442

1.在Model(也叫Item)里面定义属性,用来保存网络数据

2.在Controller里面,请求数据,用第三方框架把数据转化成模型存进Model这个类中, 然后给cell的item属性赋值,这样子就可以把item(数据)传进View里面——简单的说,就是在Controller里面把数据传进View里面

3.在View里面描述好xib,
然后定义item这个属性,并把各子控件拖好线,
重写item这个属性的getter方法(因为在控制器中给item属性赋值时候就会调用这个方法), 在这个setter方法中用这个item的各个属性来给View的子控件赋值, 达到把数据展示在UI界面上的目的—简单来说就是在View里面拿到Model数据,把数据展示在View上

大致思路就是这样, 还有一些细节的业务逻辑之类的根据实际需要处理好就行.

用MVC在日后可以方便地对代码进行维护, 可以达到”哪里出问题,就去找对应的类修改”的效果.

下一篇将写MVVM的设计模式.

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部