How To Design 如何设计一个组件化、可扩展、可配置化的优秀系统,以应对复杂变化的需求 组件创建 组件实例化依靠反射 或者 SPI方式:因为组件本身不知道要实例化哪些东西 组件实例化需要依赖JVM的ClassLoader,一般我们会维护一个类加载器 组件生命周期管理 不同类型的组件具有父子层次关系 父组件负责子组件的创建、启停和销毁 事件监听:定义组件的生命周期状态,并把组件的状态转变定义事件和观察者,进而增强扩展性 抽象类+模板方法 常规套路