买面包和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年提出的布尔关联规则的频繁项集挖掘算法.算法的名字" ...
随机推荐
- Python倒计时器(转)
# Countdown using Tkinter from Tkinter import * import time import tkMessageBox class App: def __ini ...
- WampServer:轻松配置Wordpress安装环境
WordPress运行环境 PHP 5.2.4 或更新版本(不支持第三方推出的“PHP 6.0”) MySQL 5.0 或更新版本 Apache mod_rewrite 模块(可选,用于支持“固定链接 ...
- 解决Android Device Chooser 找不到设备问题
第一种情况: 已经启动了官方的模拟器也进入了Android手机界面,可是在Android Device Chooser 看不到设备,怎么办? 例如以下图所看到的,使用Reset adb 或者在adb所 ...
- CSS3 3D旋转动画代码实例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 从零開始学习OpenCL开发(一)架构
多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012 本文将作为我<从零開始做OpenCL开发>系列文章的 ...
- Java开发环境的基本设置
作为Java的刚開始学习的人,不知道其它的刚開始学习的人有没有和我一样的感受:用Java开发须要配置这么复杂 的环境.太难了.第一次配置时,一团混乱.Oracle监听服务打不开了,PLSql连接不上O ...
- 同时显示多个 Notification
主要出在PendingIntent.getActivity();的第二个参数,API文档里虽然说是未被使用的参数(给出的例子也直接写0的),实际上是通过该参数来区别不同的Intent的,如果id相同, ...
- spoj Balanced Numbers(数位dp)
一个数字是Balanced Numbers,当且仅当组成这个数字的数,奇数出现偶数次,偶数出现奇数次 一下子就相到了三进制状压,数组开小了,一直wa,都不报re, 使用记忆化搜索,dp[i][s] 表 ...
- PHP_保留两位小数而且四舍五入_保留两位小数而且不四舍五入
php保留两位小数而且四舍五入 $num = 123213.666666; echo sprintf("%.2f", $num); php保留两位小数而且不四舍五入 $num = ...
- Android开发工具综述,开发人员必备工具
安卓开发工具汇总.开发者必备.安卓开发过程中须要用到各种工具,作为一名安卓开发者,有木有感到亚历山大,那么多工具! 今天给大家汇总了一下安卓开发工具,安卓开发者必备利器. 1.Draw 9-Patch ...