IoC != 装配和实例化的反转 != DI(注射依赖)
Inversion of Control(控制反转,IoC)
大家可能已经知道好莱坞(Hollywood)原则:
c.setState(new GreenState());
}
public void handlepull(Context c){
//根据pull方法"如果是blue状态的切换到red" ;
c.setState(new RedState());
}
public abstract void getcolor(){ return (Color.blue)}
}
c.setState(new GreenState());
}
public void handlepull(Context c){
//根据pull方法"如果是blue状态的切换到red" ;
c.setState(new RedState());
}
public abstract void getcolor(){ return (Color.blue)}
}
所以我给你指出你的这句话: c.setState(new GreenState());
}
public void handlepull(Context c){
//根据pull方法"如果是blue状态的切换到red" ;
c.setState(new RedState());
}
public abstract void getcolor(){ return (Color.blue)}
}
所以我给你指出你的这句话: c.setState(new GreenState());
}
public void handlepull(Context c){
//根据pull方法"如果是blue状态的切换到red" ;
c.setState(new RedState());
}
public abstract void getcolor(){ return (Color.blue)}
}
所以我给你指出你的这句话:引用状态模式由自己控制状态变化交给了context类是错的,你把反转的方向搞错了,我给你的回复是:
引用这个是错误的,刚好相反,如果我们使用if-else/switch-case的话,相当于使用了context控制所有的状态变化逻辑和变化后相应的行为,我们使用状态模式,就是把这二者封装给了状态而不是context,请参见漫谈设计模式和GoF设计模式的状态模式章节。
特别是请理解这句话引用我们使用状态模式,就是把这二者封装给了状态而不是context。修行在个人,看造化了。
引用),状态的互相转化没有反战控制,可能你在这些模式里做了些变化实现了控制反转,但是一般我们不认为是。
这句话是你说的吧,我只是把反转关系写错了,但是你是把整个概念完全理解错了,算了,感觉你自以为是个牛人,我也自以为是个牛人,到底谁是牛人我都觉得不重要
引用我只是把反转关系写错了你写错了让人家明白,这个有点wl了,我说过,]我们不认为是状态模式的实现反转控制的原因很清楚了
引用要说反转控制,是不严格的,因为状态之间可以不切换的,所以对于状态的设置也未反转到某些state对象里
看完这些,我只是觉得为什么人家facebook才600人,我们动不动就是4000人,还在说,看:我们的成本多低呀。
关于此方面的讨论,如果没有严谨的证据(不明白的时候往往拍脑袋想出来的是歪理,经不起推敲的),我将忽略不再继续。中国很多技术人员觉得自己是大牛,我不是!请大牛们不拿出证据讨论,我只是明白一些oo思想,做过一些实践,和那些精通oo思想的人无法沟通的,记得有位大牛说自己学习20多年,才有那么懂一点,我更是无可比拟,而这位大牛,用mf的话说就是:是为数不多的能够快速构建模型的人!在他老人家眼里,才有几个大牛?当然,我不是把火引向mf,请查阅mf简介和资历再作评价。 35 楼 sunxuetao2010 2011-06-03 我的理解简单,就是代码都写好,业务的乱七八糟的东西,都不管,最后你要用什么,配置在容器里,它根据你的配置去调用别的对象,配什么,调什么,没有依赖。