一个好的架构应该具备的特点:
1. 任务均衡分摊给具有清晰角色的实体
2. 可测试性通常都来自与上一条(对于一个合适的架构是非常容易)
3. 易用性和低成本维护
在遵循单一功能的原则下,把不同的功能划分给不同的实体,现在我们已经有多种架构设计模式可以选择:MVC MVVM MVP VIPER
Cocoa的MVC模式驱使人们写出臃肿的视图控制器,因为它们经常被混杂到View的生命周期中,因此很难说View和ViewController是分离的。尽管仍可以将业务逻辑和数据转换到Model,但是大多数情况下当需要为View减负的时候我们却无能为力了,View的最大的任务就是向Controller传递用户动作事件
VIPER 的主要部分
VIPER 的主要部分是:
视图:根据展示器的要求显示界面,并将用户输入反馈给展示器。
交互器:包含由用例指定的业务逻辑。
展示器:包含为显示(从交互器接受的内容)做的准备工作的相关视图逻辑,并对用户输入进行反馈(从交互器获取新数据)。
实体:包含交互器要使用的基本模型对象。
路由:包含用来描述屏幕显示和显示顺序的导航逻辑。