包结构的划分与平衡

包结构应该是以功能模块为基础,然后再进行分层结构的划分还是按照分层结构进行划分,然后再对功能模型元素进行分类归包。有没有比较好的指导思想?
在具体项目实践中,我主要是考虑包的依赖性、扩展性和维护性。

如果从领域驱动设计DDD角度来看,包是边界的象征,其实也就是你所说的功能模块,不过这里边界和实体值对象群无缝结合在一起,是从单个对象到多个对象的向上设计方法,自然比较容易掌握。而直接将系统划分为功能模块这种向下分法比较粗粒度。

DDD中是首先切分子领域,找出核心领域,再找出核心模型,然后划定模型的边界..

Bob大叔介绍了包内聚和耦合的6个原则:

http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod