构建
特指系统初始化的代码,创建和重建必备对象的代码、工厂、IOC等;
运行
在软件系统中,构件与使用是非常不一样的过程,也就是启动和启动之后的运行逻辑不一样;把这两者分开是一个规划良好的系统必备的素养;
通常,main方法就是启动的起点,也包括容器的启动,见《代码整洁之道》page 144图;
把启动和使用分离,主要是思想上对依赖的关注,只有在应用中的业务依赖是纯粹的,而构建所产生的依赖则无需过多关注;
把启动和运行分离,更是代码边界的体现,是建模的体现;
例子:
- IOC和注入都是构建的过程,我们利用spring在启动时把所有需要构造的模型都造出来了,然后才是开始启动运行,比喻启动引擎;
- 工厂模式,同样是设计与分离篇,我们要明确,工厂和main应该在构建这边,而创造出来的东西在运行这边;
设计:
设计代码,是否难以划分包名,范围,领域,模块?先从划分构建与运行吧!一座城市的建设,也要慢慢建设大楼。