根据经验,一个良好的架构设计可大致分三层:
- 上层是Activity、Fragment、Views&Widget等视图渲染和业务调用。
- 中层是针对业务的三方库,以及主要逻辑实现,业务流程在这完成,此层还可以细分,不再多表。
- 底层是业务无关的框架库,用之四海而皆准,各类库内高内聚,不同库间低耦合。
这样一个结构,使得你的代码快速在phone和pad以及tv之间迁移,便于业务的统一编写与调用,且让各模块更为清晰。
如图:
当然根据个人喜好不同,项目结构有区别,但基本要遵循MVC、逻辑视图分离等设计思想。
以上为结构级别,再细粒度一些,推荐反复理解实践设计模式的六大原则与23种设计模式,让项目整体更优雅可控。
自动化,智能化,约定优于配置等思想,恰当使用合需、轻量、可扩展的框架库可以帮助项目更稳定简单。
由于业务和项目的发展,在以上结构的基础上我又更下了一下整体架构,现补充答案如下。
为了快速支持不同App,以及同款App不同终端,我给项目设计了以下结构:
层级的组成:
- Lite SDK : 由HTTP、ORM、IOC、Async、Base/Common等通用组件组成。
- App SDK:全部业务逻辑在这里实现,逻辑控制、数据解析和模型等在这实现。
- App View层 :activity、fragment、layout、resource等在这里。
层级的作用:
- Lite SDK : 功能层,重视通用、性能、便捷,作为底层快速支撑不同App。
- App SDK:业务层,重视业务、逻辑、模型,作为中层快速支撑不同的终端。
- App View层 :视图&控制层,重视交互、体验、布局、资源,作为上层快速实现视觉和界面。
简言之,LiteSDK因其通用性而快速支持不同App;AppSDK因其界面无关性而快速支持同款App的不同终端或者UI层;AppView层因两外两个底层的存在而得以快速开发视觉相关功能。