将来跳槽用

移动iOS架构分析

2020-06-16  本文已影响0人  恍然如梦_b700

架构就如人体骨架,肌肉和血液还有其他就顺着骨架填充!

MVC架构思想

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

组成MVC的三个模式分别是组合模式策咯模式观察者模式,MVC在软件开发中发挥的威力,最终离不开这三个模式的默契配合

MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码 可扩展性可复用性可维护性灵活性加强.

image

ViewController过重

通过上面的图大家也看到了非常完美,但是用起来真有问题!
但是我们实际开发经常会变形:比如我们ViewController会非常之重,动不动几百行,几千行代码!那么是一些什么东西在里面?

image

控制器(controller)的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。

这里建议:

image image

耦合性问题

经常我们在开发过程中会出现下面的线!

image

这样的线对我们重用性,灵活性造成了压力
这里我推荐大家使用不直接依赖model 利用发送消息的方式传递

MVP架构思想

MVP 全称:Model-View-Presenter ;MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。

我最喜欢MVP的面向协议编程的思想!
根据产品相应的需求,写出其次需求的接口,然后根据接口去找我们响应的发起者,和接受者!面向协议编程---面向接口编程---面向需求编程---需求驱动代码!

MVP能够解决:

缺点:

MVVM架构思想

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑

如果要说MVVM的特色,我觉得最大莫过于:双向绑定

image

经常我们在设计我们的架构的时候,ViewModel层会设计响应的反向Block回调,方便我们的数据更新,只需要我们回调Block,那么在相应代码块绑定的视图中就能获取到最新的数据!

image

这个时候我们要向完美实现正向传递,经常借助另一个非常牛逼的思想:响应式
如果要想完美实现双向绑定,那么KVO我不太建议,推荐玩玩ReactiveCocoa这个框架---编程思想之集大成者!如果你们在MVVM架构设计中嵌入响应式,那就是双剑合璧.

组件路由设计

在众多架构中,在解耦性方面我觉得组件化开发无疑做的真心不错,大家经常在各个控制器跳转,就会像蜘蛛网一样错综复杂。

image

站在架构的层面就是把项目规矩化!条理化

image

根据合适的边界把这个项目进行组件模块化出来,利用cocoaPods来管理!在整体组件分层下面的模型给大家进行参考学习!

image

架构之路,无论在知识的深度还有广度方面都有较高的要求!尤其重要的对问题的的解决思维,不止在普通的应用层的ipa调用;需要大家对思维更加宽广,从代码上升到项目,到产品,甚至到公司!有时候你会很感觉很累很难,但是不将就注定不一样的你!

上一篇下一篇

猜你喜欢

热点阅读