1
raincious 2015-02-11 14:50:36 +08:00
非Java小能手,可能立即的不对,但是你是不是在说这个?: http://stackoverflow.com/questions/871405/why-do-i-need-an-ioc-container-as-opposed-to-straightforward-di-code
|
2
raincious 2015-02-11 14:51:16 +08:00
- 立即
+ 理解 |
3
jy04149886 OP @raincious 太好了,谢谢
|
4
tabris17 2015-02-11 15:17:29 +08:00
你在说IoC容器么?
IoC容器获取对象,获取对象后才能“对象的方法调用”啊,两码事儿 |
5
jy04149886 OP @tabris17 直接new,不注入
|
6
tabris17 2015-02-11 15:31:02 +08:00
@jy04149886 用IoC就是咱们不用知道对象到底怎么生成的,有些对象是new的,但是有些对象要用build或者factory模式生成。有些对象需要依赖别的服务或组件。而使用IoC容器可以让调用者无需关心这些细节。
比如一个dbconnection对象,你直接new需要传递ip端口用户名密码,你要知道从哪里去读取这些信息,到底是配置文件还是全局变量或者是常量。而是用IoC就只要把这些信息写入配置文件就可以了 |
7
jy04149886 OP @tabris17 这个我知道,比如数据库连接对象通过注入取得是很方便的,但是一个action调用它的service对象通过依赖注入来实现,我感觉好烦琐,但是现在的java三层架构的开发都是这种模式的吧。。。。是不是对这个模式使用的有点不合适。。。
|
8
tabris17 2015-02-11 15:38:26 +08:00
@jy04149886 你就姑且认为是一种DI的美学吧……
|
9
tabris17 2015-02-11 15:40:04 +08:00
或者说“用new太low了”
|
10
jy04149886 OP @tabris17 好吧。。。
|
11
hcymk2 2015-02-11 16:00:24 +08:00
|
12
windyboy 2015-02-11 16:01:31 +08:00
注入的优势在于,你只告诉接口你想干什么,至于最后这个事情怎么干,谁来干,可以执行的时候才决定
|
13
fangzhzh 2015-02-11 16:04:38 +08:00 via Android
注入方便测试
|
14
jy04149886 OP @windyboy 这机制确实很强大,不过超级大项目才体现优势吧。。。做个管理软件什么的,我看貌似没什么必要。。。
|
15
jy04149886 OP @fangzhzh 貌似现在都用注解来实现了,貌似没有xml那么强大?
|
16
invite 2015-02-11 16:13:03 +08:00
何必纠结什么模式呢?怎么方便怎么来啊。
|
17
raincious 2015-02-11 16:13:18 +08:00
@jy04149886
看你的项目到底要规范化到什么程度。 一般来说通用的代码除非出于冗余性以及组建依赖的考虑,一般还是抽出来做成可复用的流程。使用IoC方法可以轻易地做到这一点,而且可以更加灵活的进行加载(比如你可以决定是否缓存某个对象的实例,来实现比如复用数据库连接的实例),代码量可以更少。 反过来说如果你的代码里都是直接new出来,首先是维护不方便,如果这些被new的组件有更新导致调用方式改变(比如拆分了之类),那么可能需要改的地方就太多了,不便维护。而且代码一长,维护就相对更困难。 代码总归还是给人看的。 |
18
caixiexin 2015-02-11 16:13:36 +08:00 via Android
解耦,模块化,当然可以不用,自己决定:)
设计模式的问题也争论挺久了 |
19
6IbA2bj5ip3tK49j 2015-02-11 17:11:09 +08:00
团队作战,写好接口,各写各的。
|
21
kedron 2015-02-11 17:57:30 +08:00 1
注入的出发点就是为了解耦。至于为什么要解耦,怎么实现解耦的,解耦是什么意思。楼主可以顺着这个思路继续学习。
多说点,至于你现在做的东西要不要采用注入,还需要你自己学习之后结合实际情况,具体分析。很多架构、模式、框架不是说什么地方都要用。但是不用,是因为自己知道这个东西,分析之后决定不用。而不是因为自己啥也不懂,眼前怎么省事怎么来。 |
22
kedron 2015-02-11 18:01:40 +08:00
楼主这个问题一点都不傻逼,反而是有些回答……
|
24
rikeinei 2015-02-18 16:55:03 +08:00
使用注入模式比使用对象的方法调用,有没有优势主要看面对的情况,直接New不见得坏,但是注入也不见得好。
目前项目因为太庞大,平行开发修改频繁,用的注入,大家为了不影响别人开发都是先写接口... |
25
funky 2015-02-23 14:13:38 +08:00
老问题了。凡事在没有全面了解之前慎用。
|
26
sunnysign 2015-04-03 14:44:17 +08:00
我觉得python不错,用过之后就觉得java确实太麻烦,杂乱,不美好,不可爱,没有掌控感。
|