根據經驗,一個良好的架構設計可大致分三層:
- 上層是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層因兩外兩個底層的存在而得以快速開發視覺相關功能。