iOS架构CP-VIP模式

经过一个新的项目来验证过之前提出的架构模式,有些地方在实践中又进一步完善,至少目前的项目已经完全适用了。
CP-VIP模式:
Controller Protocol View Interactor Presenter

Controller层新的模型图:

iOS架构CP-VIP模式_第1张图片
VIP架构模式.png

和之前的提出的模式有些不同的是:加入了protocol的思想,Controller、View、Presenter、Interactor之间的数据传递,都调用自己的实现的protocol类,这样极大的降低了代码的耦合性。

例如:
在presenter类中需要实现跳转到SecondController页面,只需要调用方法:

    [(id)self.baseController.interactor gotoSecondController];

subViews中某个按钮调用Controller中的方法,也可以通过Protocol来实现,如:

[(id)self.baseController.interactor gotoTalkController];

方法中的self.baseController在subViews中也指向是Controller。
这样子是不是避免了多个delegate的传递,或者NSNotification的注册响应。

下面举个IM中 聊天框页面布局来介绍这个框架的使用。
1分析聊天框层次划分:
客户端功能上:聊天网络服务(TalkNetServer)
聊天数据管理 (TalkDBServer)
聊天界面展示 (TalkView)

今天先来说一下简单的UI聊天界面层


iOS架构CP-VIP模式_第2张图片
Talk.jpg

层次多了个adapter,是因为用到了UITableView,用了android的设计思想,将UITableViewDelegate和UITableViewDataSource实现封装到适配器(Adapter)中,简少类的代码量,并无其他意义。

PBTalkView由输入框(PBTalkInputBar)、PBTalkTableHeaderView、功能视图(PBBottomView)和TableView组合而成。

在GitHub上给出了一个之前的Demo 稍微完善了一下。

你可能感兴趣的:(iOS架构CP-VIP模式)