1.UI业务层是业务开发人员接触最常见的。比如我们按照首页N个Tab划分为MessageModule,ContactModule...等等
2.ModuleInterface层为上层的每个UI业务模块对外开放的接口,每个ModuleInterface定义了对应的Module对外提供的服务,对外提供的路由path,路由入参,提供服务返回值信息等等。注意ModuleInterface只是提供接口定义,具体实现是由其对应的xxxUIModule业务层去实现的。这个是ModuleInterFace与后面要介绍的数据服务层xxxDataService最显著的区别。这里又有人要问了模块之间数据交互是否可以更加解耦合一点,比如A模块进入B模块的b1页面,传递的参数对象是否可以序列化成json字符串后,再在b1页面进行反序列呢。如果这样子的话,就需要在A页面定义一个数据模型,序列化后,传到b1页面又在B模块定义一个对应的数据模型反序列化回来。同时还要在后续的迭代中不停的拉齐A:B模块中定义的这两个数据模型字段的一致性。如果有了ModuleInterface,那只需要在ModuleInterface中的BModuleInterface中定义b1Model,让A模块按照b1Model构造数据进入B模块的b1页面。
3.数据服务层对应为每个UIModule业务的本地/网络数据增删查改进行封装。每个xxxDataService都拥有自己业务相关的独立的数据模型定义,数据增删查改的完整闭环逻辑。
4.复杂UIComponent层指的是那种需要从xxxDataService层获取数据后,才能展示具体UI的复杂逻辑UI控件。比如美信项目中的AvatarComponent组件,他需要根据用户Id获取用户photo,用户name信息后才能展示用户头像UI。
5.简单UIComponent就比较容易理解了,应该是项目中一些常见的简单UI控件,比如alert之类的。它应该只能依赖系统基本数据类型,不能依赖其他任何复杂的数据模型。
6.当然最底下应该还有网络sdk封装层,socket封装层,BaseFoundation层封装一些基础的工具类等等。