总体架构可以被分成四个部分 : Presentation:负责展示图形界面,并填充数据,该层囊括了 View 和 Presenter (上图所示的 Model 我理解为 ViewModel -- 为 View 提供数据的 Model,或称之为 VO -- View Object)。 Domain:负责实现 app 的业务逻辑,该层中由普通的 Java 对象组成,一般包括 UserCases 和 Business Logic。 Data:负责提供数据,这里采用了 Repository 模式,Repository 是仓库管理员,Domain 需要什么东西只需告诉仓库管理员,由仓库管理员把东西拿给它,并不需要知道东西实际放在哪。Android 开发中常见的数据来源有,RestAPI、SQLite 数据库、本地缓存等。 Library:负责提供各种工具和管理第三方库,现在的开发一般离不开第三方库(当然可以自己实现,但是不要重复造轮子不是吗?),这里建议在统一的地方管理(那就是建一个单独的 module),尽量保证和 Presentation 层分开。