首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

IoC != 安装和实例化的反转 != DI(注射依赖)

2012-08-21 
IoC ! 装配和实例化的反转 ! DI(注射依赖)Inversion of Control(控制反转,IoC)大家可能已经知道好莱坞(H

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   我的理解简单,就是代码都写好,业务的乱七八糟的东西,都不管,最后你要用什么,配置在容器里,它根据你的配置去调用别的对象,配什么,调什么,没有依赖。

热点排行