Kemin's Blog

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

转自:http://blog.nona.name/categories/ioc/

IoC 是近年来兴起的一种思想,不仅仅是编程思想。

常说的好莱坞原则“Don’t call us, we’ll call you”就是这一体现
即,把控制权反转

在编程中,反转控制权常常会的到意想不到的效果。
尤其是framework或container的开发,将流程或处理交给server
将大大减少程序员的开发时间。

下文是我在CSDN发表的文章:介绍IoC

介绍 IOC 作者:冰云 icecloud(AT)sina.com时间:2004.02.15一、什么是IOCIoC就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。 下面我们以几个例子来说明什么是IoC 假设我们要设计一个Girl和一个Boy类,其中Girl有kiss方法,即Girl想要Kiss一个Boy。那么,我们的问题是,Girl如何能够认识这个Boy?    在我们中国,常见的MM与GG的认识方式有以下几种    1 青梅竹马;  2 亲友介绍;  3 父母包办     那么哪一种才是最好呢?    青梅竹马:Girl从小就知道自己的Boy。         public class Girl {      void kiss(){       Boy boy = new Boy();    }}      然而从开始就创建的Boy缺点就是无法在更换。并且要负责Boy的整个生命周期。如果我们的Girl想要换一个怎么办?(笔者严重不支持Girl经常更换Boy)     亲友介绍:由中间人负责提供Boy来见面        public class Girl {    void kiss(){       Boy boy = BoyFactory.createBoy();          }}     亲友介绍,固然是好。如果不满意,尽管另外换一个好了。但是,亲友BoyFactory经常是以Singleton的形式出现,不然就是,存在于Globals,无处不在,无处不能。实在是太繁琐了一点,不够灵活。我为什么一定要这个亲友掺和进来呢?为什么一定要付给她介绍费呢?万一最好的朋友爱上了我的男朋友呢?     父母包办:一切交给父母,自己不用费吹灰之力,只需要等着Kiss就好了。        public class Girl {    void kiss(Boy boy){       // kiss boy        […]

 

posted on 2005-10-11 12:49  kemin  阅读(397)  评论(0编辑  收藏  举报