- 例如这样的情况编写的sdk,刚开始一个团队的人,吭哧吭哧地写,由于组长并没有预见之后可能要混淆的麻烦,或者说没有坚持编程思想里面 “高内聚,低耦合” 的原则,结果包分得很多,很杂,关键是无法快速有效区分包下对内和对外的模块,类。包与包,类与类之间充满着耦合。
针对上述问题,可以借鉴一下比较成熟的三方扩展包的分包方式,在编码初期就预见之后可能需要混淆等操作,还是可以按功能模块分包,只是在包内添加 internal 的子包,例如facebook sdk里的分包策略:
感想:尽量只暴露一些操作类,把内部逻辑和细节隐藏到 internal 里,模块之间尽量做到低耦合,各模块内数据库操作最好放单独db包,ORM通过反射来映射所以混淆时会报找不到字段,混淆时要排除掉db包。另外java里面提供的 protected,private等关键字运用得贴切,不要一个劲的public。