知识回顾:
谈到容器,我们首先要想到为什么会有IOC容器?
我们刚开始,从简单的new,再到工厂方法,再到IOC容器,是一个过渡的阶段。
为了满足不同用户的需求,我们会有xml,注解等来进行生成实体。但是,实体和容器间有个不变的东西,在Spring源码中叫做BeanDefinitionReader,这个BeanDefinitionReader是xml,注解的抽象,用来表示实体信息,在容器内部,我们通过反射来进行构造器进行初始化对象
以上我们可以通过一个图来表示
在IOC Container中,我们如何通过一些bean的信息去new出实例?
我们可以通过反射工厂进行new出实例,在Spring源码中,这个叫做BeanFactory
cos=class.getConstructor();
obj=cos.newInstance();
于是我们有了容器的实例。
我们可以将对象直接返回给用户么?
答案是不可以,我们需要对对象进行增强,在源码中,这个叫做BeanPostProcessor
于是,上面整个就是我们的架构。
总结:保证高内聚,低耦合,扩展性,这个才是我们最终想要架构的东西。
我们可以不强记设计模式,在我们开发中,有相似的直接抽出接口,相同的直接套模板,这便是我们开发架构原则。
老师的总图草稿: