买面包和IoC
今天上午准备去一个阿姨,在那里买面包。这可能是由于小尺寸她的,因此,管理不规范,所以,当你买面包。没有人行。即使所有的大学生,似几乎没有这种意识。。
。
但让我感到震惊的是。尽管没有排队,但阿姨似乎能够保证我们买面包的公平性。方法是去买面包的人,谁先叫买什么,阿姨就会先卖给谁。无论你后来来买的人叫得都么宏亮。
阿姨都会先卖给先叫的人。
阿姨把每一个人的顺序都记住了,然后按这个顺序给我们卖面包。
对于这样的方式。我个人是不赞同的。首先是假设人多了。阿姨可能就会非常麻烦。其次,这样的方式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("排队") ;
这样,我们也能够享受到排队这个对象,仅仅只是对象由阿姨帮我们创建了而已。
以上就是我今天买面包引发的思考,假设当中有错误的地方,希望大家指出。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
买面包和IoC的更多相关文章
- Something Wrong or Something Right
其实,你还可以和高中一样 其实,你还可以和高中一样,每天不情愿的早早起床,走在冬天漆黑的清晨里.食堂还没有开门,你就去商店买面包和牛奶,接着快步走进教学楼,轻声咒骂一声老师要求的时间太早,然后打开一本 ...
- python3 生成器&迭代器
#Author by Andy#_*_ coding:utf-8 _*_import timefrom collections import Iterable#列表生成式def func(): lis ...
- H - Lazier Salesgirl
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Submit Status Practic ...
- 安卓、swiper标准的文字滚动
溢出滚动基本原理还是relative,absolute. 核心高度 swiper-wrapper 和gun-swiper-slide 的自适应高度成为关键 <style> .gun-s ...
- 安卓apk与swiper文字版滚动条
浏览器基础端代码 <!-- Swiper --> <div class="swiper-container"> <div class="sw ...
- swiper超出部分出现滚动条
html代码 <div class="wrap swiper-container"> <div class="swiper-wrapper"& ...
- 关联规则算法(The Apriori algorithm)详解
一.前言 在学习The Apriori algorithm算法时,参考了多篇博客和一篇论文,尽管这些都是很优秀的文章,但是并没有一篇文章详解了算法的整个流程,故整理多篇文章,并加入自己的一些注解,有了 ...
- ZOJ 3607 Lazier Salesgirl(贪心)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3607 题意:一个卖面包的小姑娘,给第i个来买面包的人的价格是pi, ...
- Apriori学习笔记
Apriori算法是一种挖掘关联规则的频繁项集算法,是由Rakesh Agrawal和Ramakrishnan Srikant两位在1994年提出的布尔关联规则的频繁项集挖掘算法.算法的名字" ...
随机推荐
- MyEclipse 2013 新功能介绍
http://pan.baidu.com/share/link?shareid=3310814720&uk=4012618212 下载地址 HTML5 Mobile Projects MyEc ...
- dedecms 获取描述信息限制字数
对于我刚刚刚开始对于获取到了描述的信息,但是有些字数简直是太多了,显示的样式不好看,所以我就希望限制字数,所以我来告诉你们获取描述信息限制字数的语法吧[field:description functi ...
- 添加PDF文件对照度的粗浅原理,及方法
上边这张照片不是异形,而是著名的鹦鹉螺.下边这张照片,是送给研究生同学的毕业纪念,向龙同学帮我激光雕刻的. 近期的照片在[http://www.douban.com/photos/album/13 ...
- uva 10066 The Twin Towers (最长公共子)
uva 10066 The Twin Towers 标题效果:最长公共子. 解题思路:最长公共子. #include<stdio.h> #include<string.h> # ...
- 一些周期性GC的理由为何
1.供tomcat:防止内存泄漏监听器 JreMemoryLeakPreventionListener在上班,每隔一小时默认触发一次System.gc Class clazz = Class.forN ...
- 泛泰A850 (高通8064+720p)刷4.4专用中文recovery TWRP2.7.1.3版
欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...
- 【Android工具类】Activity管理工具类AppManager
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack; import android.app.Activity; i ...
- 共同发展一个以上的开发者账户多台电脑 证书 p12 型材 进出口
1:导出相应的开发人员证书的配置文件. 2:依据相应的app id 创建配置文件. 3:打开钥匙串,把你的公布证书导出p12文件. 4:用开发人员账号导出developerprofile文件. 5:把 ...
- Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成
介绍:Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排运行以生成标准的JDBC结果集. 直接使用HBase API.协同处理器与自己定义过滤器.对于简单查询来说,其性能 ...
- php函数serialize()与unserialize() 数据序列化与反序列化
php函数serialize()与unserialize()说明及案例.想要将已序列化的字符串变回 PHP 的值,可使用unserialize().serialize()可处理除了resource之外 ...