封装,本质上是采用物理的方式(文件&包)或者抽象的方式(类&函数)对过程做划分。
封装之后,形成一个个模块,对模块的划分,原则上是依赖于业务的关联度。
一般来说,模块更习惯使用逻辑单位表示模块,而尽量不关注于容器。模块的最小单位是类。
有两个类共同完成一个功能,称之为功能域。功能域内模块和模块之间的关系称为“伪模块”,功能域对外称之为“真模块”。
伪模块之间尽量遵从功能单一原则,例如一个类可能实现A、B、C、D,如果他们之间几乎没有关系,负责了不同层面上的功能,尽量将他们分成不同的类。
真模块尽量遵从接口隔离原则,接口尽量的简单,尽量的少,从而减少模块之间的耦合。
业务模块要尽量的和实现模块区分开,实现模块应当提供足够的、明确的错误信息给业务模块。
在编程的时候,要注重划分“伪模块”,“真模块”,计划好接口之间的关系,才能在开发过程中保证程序的可扩展性,减少后面重构的风险。