今天上午准备去一个阿姨,在那里买面包。这可能是由于小尺寸她的,因此,管理不规范,所以,当你买面包。没有人行。即使所有的大学生,似几乎没有这种意识。。

但让我感到震惊的是。尽管没有排队,但阿姨似乎能够保证我们买面包的公平性。方法是去买面包的人,谁先叫买什么,阿姨就会先卖给谁。无论你后来来买的人叫得都么宏亮。

阿姨都会先卖给先叫的人。

阿姨把每一个人的顺序都记住了,然后按这个顺序给我们卖面包。

对于这样的方式。我个人是不赞同的。首先是假设人多了。阿姨可能就会非常麻烦。其次,这样的方式easy导致客户不满的情绪。由于“队列”在阿姨的脑袋里,客户看不到,对于新来的客户,

可能会有点反感。熟客可能就会理解。

所以还是希望阿姨能换种方式(事实上作为大学生的我们,为什么不自觉排队呢)。

阿姨买面包的方式让我想起了IoC。

曾经学习Spring的时候,对这个概念特别不理解。有时甚至发现,学习Struts2和Hibernate的时候。都能大概知道他们做什么。而对于Spring,却不知道

能够做什么,后来学到设计模式和软件project,才对Spring有一丁点理解。

首先我说说我理解中的IoC是什么。IoC,英文全称是Inversion of Control。Inversion在英文里的意思是:n. 倒置;反向;倒转

假设按这样理解,IoC就是让控制进行反转的东西,那么是对什么控制呢?后来了解到是对对象的创建的控制。

例:

--------------------------------

我们平时编程。创建一个对象是这样创建的:

Object obj = new Object() ;

这是一种直接的控制。我想new什么就new什么,对象创建的控制权在我手中。

而假设使用了Spring框架之后,对象就是这样创建的:

Object obj = beanFactory.getBean("obj") ;

对象不能由自己new了。而是交给了IoC容器new了。程序中发送一条"obj"的话,IoC容器就依据这句话。给我们返回一个我们须要的对象。借用书本上引用好莱坞的一句话:"Don't call me, I'll call you."

不须要自己创建对象,仅仅要你告诉容器,容器帮你创建。

以上是我理解的IoC,有点像今天的买面包。

我们把买东西要排队这个规矩定为一个类.

当我们自觉排队时,

QueueRole role = new QueueRole() ;

当我们不须要排队,阿姨帮我们排好队时:

QueueRole role = 阿姨.getBean("排队") ;

这样,我们也能够享受到排队这个对象,仅仅只是对象由阿姨帮我们创建了而已。

以上就是我今天买面包引发的思考,假设当中有错误的地方,希望大家指出。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

05-07 15:38