一、隐式初始化
隐式初始化一般通过包初始化方法执行初始化。需要注意的是,如果初始化逻辑存在错误的可能,由于init
方法的错误无法被上层捕获,初始化出错时往往直接终止程序启动。例如:
隐式初始化出错时往往直接终止程序启动
GoFrame
框架的很多模块都采用了隐式初始化,隐藏模块的初始化细节,减少开发者的心智负担。例如:
GoFrame
中的模块普遍存在隐式初始化设计
二、显式初始化
显式初始化要求开发在程序启动时,如在main
或者boot
模块中,调用特定的方法来执行初始化操作。一般来说,基础组件的初始化往往采用隐式初始化多一些,因为对于使用者来讲并不关心底层基础模块的初始化逻辑,而业务模块的初始化大多数会采用显式初始化。例如:
在boot
包中按照顺序执行显式初始化
三、如何选择
在业务场景下,非特殊必要,我们建议大家采用显式初始化的方式,以保证更好的可维护性。