关于依赖注入请教

依赖注入的用处在于解耦,在jfinal的设计里面,这个依赖注入功能,感觉貌似就是能少写个new?老大能简单讲解一下这个依赖注入的好处是什么呢

评论区

JFinal

2019-02-28 11:35

在 jfinal 里头是为了减少代码量而上的功能

按传统说法,依赖注入的好处是方便在未来通过配置的方式注入不同的实现类,从而实现不同的功能

例如,你先是给定一个 IService 接口,今天你通过依赖注入的是 AaaService 实现类,下个月你希望给注入一个 BbbService 实现类,这时候就可以通过配置来改变实现类

而在实际的工程应用中,这种动不动就依赖注入的搞法并不划算,因为你要在未来改变实现类的需求在实际上是很少的,退一步讲即便在未来出现这个需求了,直接改代码也很方便

所以,为了一个在未来可能出现的需求,而在当下随处都弄上依赖注入在工程上是很不划算、很愚蠢的做法

依赖注入更适合于框架类的系统,而不是应用系统。 框架类的系统面临的场景足够多

所以,jfinal 中提供了非常多的 setter 方法对很多功能都可以配置,而配置进去的东西相当于依赖注入,例如:
me.setRenderFactor(...)
engine.setSourceFactory(...)
arp.setContainerFactory(...)

只有在你确定有很多实现需要切换的时候才有价值

flash866

2019-02-28 14:10

@JFinal 多谢解答,后面我来消化

热门反馈

扫码入社