Exodia

Results 14 comments of Exodia

> 一个问题是有可能一个对象同时有foo这个setter又有setFoo这个方法,我的建议是都注入一次 我有点纠结:这里的都注入一次,是同一个实例,还是不同的实例?

从 prototype 获取有些问题: 1. 很难确保不会在实例上添加方法 2. 很难保证说对象一定是 new 出来的,这样就不一定能够保证带有 prototype 我想是初始化的时候从实例获取接口依赖,然后缓存,接下来就不需要去解析接口依赖了,仅仅在第一次会有点性能消耗

> 这个……如果不是单例,会有多次实例化,这个缓存后不是依旧会有你说的1的问题吗 多次实例化无所谓吧,我仅仅是需要从第一次的实例化中,获取这个实例符合的接口依赖,然后缓存到内部的配置中,下次实例化时,我直接从这个配置读取依赖给新实例注入

我觉得接口配置可以简化的写: ``` javascript interfaces: [ // interface1 { method: 'setGlobalData', { properties: { globalData: { $ref: 'globalData' } }} } ] ```

> 是啊,所以第2次实例化前有给prototype加方法改变类型的定义,缓存还是会出问题,所以我觉得把1给无视掉 嗯,无视掉吧- -! 这样改 prototype 简直丧心病狂。

主要是为了以后decorator的场景以及和其他第三方框架整合的考虑。

是想像下面这样? ``` javascript var obj = ioc.injectDeps(obj); // 啪啪啪,obj 的属性依赖都进来了 ``` 这个有什么使用场景么? 可能的实现方式是,按照自动注入的方式找 setter 依赖,或者再来个参数,里面是需要注入的依赖

能否说下,大概想怎么用 ioc 对对象注入?如果 ActionPanel 提供 controller 的配置及setter,似乎可以直接从 ioc 拿 controller 就好,或者在依赖配置中配置 view 的UIProperties

根据2的需求,IoC 提供一个生命周期:onCreate:handler,这样在 handler 做这些事情如何?

不知道这是不是叫拦截器的意思。。- -!!每个实例创建后,都会调用 onCreate,在这里面业务项目自己去搞?