本文仅仅从纯粹代码维护和进化的角度考虑问题,完全忽略微观工程中的组织和分工。
程序中的组件并不等同与真实世界的组件,本质上是方法,数据,上下文。
组件是抽象组件,比如开车方法,放在人身上也行,放在车身上也行,放在车身上,就是车提供一个被开的方法,属于某种,建造者模式。
有时候是组件提供某种方法,有时候是组件提供某种方法的映射或运行结果,那被称之为外观模式(门面模式)
实际上想说,不用拘泥于客观世界的定势,架构师扮演上帝,制造一个属于概念的世界,
组件的划分,随时从虚空中发明无限多不存在的功能构件,其目的不是为了提供功能,而仅仅是为提供功能的代码提供某种助记助用的虚拟区域划分,如同军队中的组织单元。
组件代码的多少无定,不受空间的限制,只受维护复杂极限的限制。
组件之间的组装,套用,不受任何字面的逻辑限制,仅需要考虑的是如何能化难为量,化需求为知识,让计算机和知识储备为你的工作解决大部分问题。如果调用不利,就切割组件或映射组件。
组件的划分和调用,仅仅对实现功能和效用的代码有效组织的助记而已,本质上应追求代码的有效组织,而不是反之。