上一篇主要讲述了苹果原生iOS框架的架构,这一篇我们就说一下如果自己要完成一个APP,需要如何去设计架构。
我们说APP的架构设计,但是架构设计需要我们怎么在结构上进行划分呢?可以按照下面进行划分。
其实也可以有三层分层架构:展现层、业务层、数据层。
ManagedObject
理论上是可以出现在任何地方的,那就意味着任何地方都可以修改ManagedObject,这就导致ManagedObjectContext在同步修改的时候把各种不同来源的修改同步进去。这时候就需要限制灵活性,只对外公开一个修改接口,不暴露任何ManagedObject在外面。如果是设计一个ABTest相关的API的时候,我们又希望增加它的灵活性。使得业务方不光可以通过Target-Action的模式实现ABtest,也要可以通过Block的方式实现ABTest,要尽可能满足灵活性,减少业务方的使用成本。前面根据需求对框架的架构分类,可以分为三层结构甚至四层结构,这里就说一下架构模式,可以说架构模式是架构实现的方式。常见的有MVC、MVVM和VOPER等。好的架构模式可以让模块功能更清晰,维护起来也很方便。
下面就一起看一下这几种架构模式:
MVC
这里MVC就不多说了,相信大家对它是最先接触也是最熟悉的了。
MVVM
Controller
主要作为调度者,居于中心位置。客串部分View相关功能。ViewModel
专门做“显示逻辑”,并且用属性观察者做绑定,必要的时候用Notification。ViewModel
和Model推荐用Struct;Logic倾向于用class。从一个简单直观的概念来说,ViewModel需要保持轻量级,跟随页面走,随时准备修改。Model也是轻量级,跟随后台API定义走,只是个数据结构,随时准备修改。而Logic就显得比较大,考虑稳定,考虑复用。Logic
类,负责业务逻辑,比如从网络取数据,修改数据库,检查用户名合法性,具体的响应逻辑,监听后的具体处理等等。VIPER
View
: 也是View + ControllerPresent
:相当于ViewModel,叫展示器Interactor
:交互器,侧重于业务逻辑;从网络取数据,数据库等功能都在这里。Entity
:就是Model,仅仅是数据定义WireFrame
:就是Router,是页面跳转1. iOS应用架构谈 开篇 2. 我们常见的分层架构,有三层架构的:展现层、业务层、数据层。
上面很多都是一些大牛的技术经验之谈,感兴趣的给个赞或者关注,谢谢~~~~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。