我看网上教程的例子 都很喜欢用 DAL , IDAL来举例, 多个不同的数据库DAL 分别实现IDAL接口
然后autofac通过配置映射
我怎么感觉就像以前的工程模式里面的 工厂, 用反射创建DAL实例
autofac 给我感觉就是一个反射的封装
求指正
------解决思路----------------------
ioc你就可以认为是个加强版本的工厂,额外具备了一些工厂不具备的功能

------解决思路----------------------
一般的工厂没有注册机制,没有生命周期管理,不能自动解析依赖。
比如 A 要依赖 B,一般 A 的工厂创建 A,发现要依赖 B,它不知道怎么创建 B,这可能要 A 的工厂依赖 B 的工厂才行。如果依赖树很复杂,用工厂会十分痛苦,相当于把类型的依赖关系耦合进了类型的工厂里。而 ioc / di 框架是在一个地方管理所有依赖关系,它就有足够的信息能够沿着依赖树创建所有依赖。
生命周期管理也很重要,比如在 asp.net 环境下,往往希望在请求结束时把处理请求的过程中用到的所有对象销毁,不要让它们拖到 GC 的时候。 ioc 容器就可以实现这种需求。
另外,ioc 框架创建对象不是用反射,而是表达式编译和 emit il,远比反射效率高。