模拟微信多个小程序在概览屏幕中可见的效果,加入了一些设计模式相关的实践,由于是个小DEMO,有点过度设计的味道。
- 加入动漫《火影忍者》的元素,以几个影级别的忍者代表有特殊能力的小程序,几个普通上忍中忍代表普通的服务号公众号。
- 项目中分为配置模块,忍者工厂模块,分工明确,低耦合,符合单一职责原则。
- 不同的忍者使用不同的工厂方法实例化,业务层只需要和具体的忍者工厂接触。不依赖具体的生产逻辑,符合依赖倒转原则。
- 忍者以及具体的工厂都用相应的接口和抽象类约束,各模块只和接口交互,面向接口编程,符合里氏代换。同时不同的接口分工明确,接口分离。
- 配置模块涉及到多个初始化入参的配置,采用builder模式提升代码的优雅程度。
- 一些npe等代码鲁棒性相关的判空操作,已收敛到基类中。