欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

IoC想到的. IOC框架SpringServlet 

程序员文章站 2022-06-08 21:06:40
...
Inversion of Control
   --Dependency Lookup
   --Dependency Injection
          --Setter Injection
          --Constructor Injection

控制反转的一般表示形式.
依赖注入. 由外部框架管理对象之间的依赖关系.查找资源的逻辑从应用代码中抽取出来,交由框架容器负责.     
依赖查找. 一般由工厂对象,如对象注册表.通过键名查找服务对象.  JNDI,手动使用BeanFactory, 自己管理的工厂对象.
接口回调. 上面两种的服务一般都是业务对象之间的依赖关系,而接口回调更多的是与框架,容器的交互.  客户代码实现框架,容器预留的接口, 运行时,框架容器调

用扩展代码,将对象注入.   Servlet接口,注入的HttpRequest,HttpResponse对象.    Spring的BeanFactoryAware注入的BeanFactory对象,ServletContextAware注入

的ServletContext, Struct2的 ServletContextAware 等等这些对象生命周期的回调接口.  实现回调接口的目的一般都是使用接口注入的服务对象,也有命令式的回调

接口,如Spring的InitializingBean 和 DisposableBean.
不同的反转形式,并不是要消除掉它们的依赖关系,而是使它们的依赖关系更简单,职责更清晰,每个类的任务更明确.而不是在一个业务对象里充满了查询其它对象

的代码,它们的问题不在同一水平线上,至少业务逻辑和查找逻辑不应在同一类里,使用Extract Class将查找对象的逻辑分离出去.这三种形式的基本设计作法都应该

使用接口将实现代码进行隔离.