首页 新闻 搜索 专区 学院

关于IOC配置很多的问题

0
悬赏园豆:80 [已解决问题] 解决于 2015-10-30 13:07
有个IOC的疑问, 像这里ICacheManager<T> 这个T可以是任意啊, 那么我是不是要写一堆的IOC初始化配置? 
ioc
笋干的主页 笋干 | 初学一级 | 园豆:76
提问于:2015-10-26 11:55
< >
分享
最佳答案
0

一般都是使用配置文件来注册IOC的. 

http://www.cnblogs.com/zhangchenliang/archive/2013/01/08/2850970.html

收获园豆:80
李丶GuanYao | 小虾三级 |园豆:1228 | 2015-10-26 14:50

这样的话 配置文件还是很长很长 要是有上百个T实例,得有上百行配置,还挺多的额 汗

笋干 | 园豆:76 (初学一级) | 2015-10-26 15:04

@笋干: 这没办法. 你不配置. 程序怎么知道你这个接口到底是想实例化哪个实现呢?. 而且一般也不会有上百个接口那么多吧..

李丶GuanYao | 园豆:1228 (小虾三级) | 2015-10-26 15:08

@李丶GuanYao: 

像我这里就有上百个啊,ICacheManager<T> 每个可以被缓存的T都需要手动注册下,系统大了,量就很大了。我是想Unity有批量的注册,那肯定也有方法解决这种批量注册~

笋干 | 园豆:76 (初学一级) | 2015-10-26 16:14

@笋干: 

那我就不知道了.. 

因为据我所知.. 不管什么IOC. 都是要配置的.

我所知道的方法中, 最方便的就是在配置文件里配置.  然后在后台代码里批量注册.

李丶GuanYao | 园豆:1228 (小虾三级) | 2015-10-26 16:32

@李丶GuanYao: 默认的api里是可以批量注册 Class<> 这样的方式,但是我这里用一个一个func来初始化 所以注册起来就不知道怎么获取T了

笋干 | 园豆:76 (初学一级) | 2015-10-26 16:38
其他回答(3)
0

<T>是泛型,你该去了解下泛型编程思想

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-26 12:01

 我并不是不知道泛型,而是对IOC不了解。这个问题是:我如果我有个N个实例A、B、C。。。都是用同样的配置,那我需要RegisterType N次,我的疑问就是,IOC对于这样的场景是否有优化,有更简单的方式?

支持(0) 反对(0) 笋干 | 园豆:76 (初学一级) | 2015-10-26 13:13

@笋干: o

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-26 16:23
0

首先一个接口肯定对应一个实现.泛型接口的泛型实现,肯定是只要注册一个就好了.

只是真不知道怎么注册.我都是用一个基类接口来做的.

吴瑞祥 | 园豆:28937 (高人七级) | 2015-10-26 13:23
0

关于这个问题,我去询问了CacheManager的作者,他给出了一个建议。 https://github.com/MichaCo/CacheManager/issues/20

笋干 | 园豆:76 (初学一级) | 2015-10-30 13:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册