首先,马桶是一个大大的容器,能够容纳各种秽物。而且您应该明确这个观点:这个技术的根本目的就是让您和您拉的屎能够轻松的进行分离,不至于在您排泄的过 程中拉的满裤子都是而无法清理,否则您就得通过其他手段,例如拿纸重新擦屁股,或者漂洗内裤乃至丢弃这样不可重用,且浪费资源的方法来解决拉屎难,且大便 与屁眼儿无法及时分离的困难。
解决这个问题的根本思想就是设计一个接口――屁眼儿,让您进食之后能够及时将大便 排泄出体外。所以,我们进行消化这个动作是依赖于屁眼的,同时在另一方面,在马桶容器这边,需要提供一个能够接纳屁眼放置在其内的空间,以便能够通过存储 大便的这个方法来获得对人拉屎这个动作的控制,人就是这样依赖于屁眼将大便注入到马桶里的。
如果我们把 目光放的更宽泛些,您也许会发现,人吃进去的是蔬菜,是鱼肉,怎么到马桶这样一个输出端就变成屎了呢,按道理,蔬菜和鱼肉排泄在马桶里还应该是原来的东西 啊?如果您仔细理解了:容器本身是不对接口有任何实现的,即马桶本身不具备能将屎变成蔬菜和鱼肉的功能。您发散下思维也许看的更清楚。农民伯伯会把这些屎 尿播撒在田地里,然后它们滋润着蔬菜苗们的生长,给周围鱼塘供以新鲜食料…从这个角度来看,注意,农民伯伯也有屁眼,所以他肯定实现了屁眼这个接口。具体 将屎尿转化为蔬菜鱼肉这个过程其实是由农民伯伯来具体实现的,我们所要做的就是将其过程逆化,其结果就是有人在一边种,有人在另一边吃,本来农民是天下的 主人,我们这帮孙子在人头上吃喝拉撒,您瞧,这在根本意义上不就是自然而然的控制反转么?
还有一点注意,屎和蔬菜鱼肉在根本上没有任何区别,只是对于人这一端来说需要加以判断;识别出来它们是蔬菜鱼肉才敢吃,否则吃到屎就该报错了。这点和Spring技术本身没有任何出入。
原文地址:http://www.cnblogs.com/imbob/archive/2009/06/12/1502119.html
相关推荐
通过形象的实例解释了什么是依赖注入,以及反射在工厂中的应用
首先,我们要理解什么是依赖注入(Dependency Injection,简称DI)。依赖注入是一种设计模式,它允许我们把一个对象的依赖关系传递给另一个对象,而不是让对象自己去查找或创建依赖。在Spring中,依赖注入可以通过...
首先,让我们理解什么是依赖注入。依赖注入的核心思想是,一个对象不直接创建或查找它所依赖的对象,而是由外部实体将这些依赖传递给它。这样做的好处在于,对象之间的耦合度降低,因为它们不再直接控制彼此的生命...
"依赖注入是一种软件设计模式" 依赖注入(Dependency Injection)是一种软件设计模式,用于解耦合软件系统中的组件之间的依赖关系。它允许组件之间松散耦合,提高系统的灵活性、可维护性和可扩展性。 在传统的软件...
首先,我们要理解什么是依赖注入。依赖注入是指一个对象不再自行创建或查找其依赖的对象,而是由外部容器(在Spring中就是ApplicationContext)在运行时提供这些依赖。这样做的好处在于,对象之间的耦合度降低,因为...
首先,让我们理解什么是依赖注入。依赖注入的核心思想是解耦组件之间的依赖关系,使得组件之间通过接口进行通信,而不是通过硬编码的方式来创建和管理彼此的实例。这使得代码更易于测试,因为我们可以轻松地替换依赖...
首先,我们要理解什么是依赖注入。依赖注入的核心思想是将对象之间的依赖关系通过外部容器管理,而不是由对象自身负责。这样,对象不再需要直接创建或查找依赖对象,降低了对象间的耦合度。在Java中,我们通常使用...
AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的。 依赖注入,简而言之,就是解除硬编码,达到解偶的目的。 下面,我们看看...
### 依赖注入那些事儿 #### 1. IGame游戏公司的故事 ##### 1.1 讨论会 IGame是一家专注于开发动作角色扮演游戏的游戏公司。这类游戏通常包含一个基础功能——打怪,即玩家通过攻击怪物来获得经验值、虚拟货币和...
首先,让我们定义什么是依赖注入。在软件设计中,当一个类A依赖于另一个类B时,我们说A依赖于B。传统做法是,在A的构造函数或方法中直接创建B的实例。但在Spring框架中,我们不直接创建依赖对象,而是通过Spring容器...
首先,让我们理解什么是依赖注入。依赖注入是一种设计模式,它允许我们在不直接创建对象的情况下传递依赖。这通常是通过将依赖项作为构造函数参数传递给类,或者通过接口注册到依赖注入容器来实现的。在.NET Core中...
首先,我们要明白什么是依赖注入。在传统的编程中,一个对象通常会直接创建或查找它所依赖的对象,这会导致类之间的紧密耦合。依赖注入则是将这种耦合关系反转,由外部容器(如Spring IoC容器)负责创建对象并管理...
### C# 依赖注入 控制反转 #### 一、IoC(控制反转)简介 IoC,即"Inversion of Control"(控制反转),是软件工程领域的一个重要概念,特别是面向对象编程中的一个关键设计原则。从字面上理解,IoC指的是程序运行...
依赖注入(Dependency Injection,简称DI)是一种设计模式,它在软件工程中被广泛应用于解耦组件,提高代码的可测试性和可维护性。在PHP世界里,依赖注入框架可以帮助开发者更方便地管理类之间的依赖关系,减少硬...
首先,让我们理解什么是依赖注入。依赖注入的核心思想是,一个对象不直接创建它所依赖的对象,而是通过外部容器或服务提供者来传递这些依赖。这样做的好处在于,对象之间的耦合度降低,使得代码更加松散耦合,更容易...
C++依赖注入是一种设计模式,它对于简化软件设计、控制依赖关系、降低耦合度、提高代码的内聚度以及方便进行单元测试具有重要作用。依赖注入的核心思想是将依赖对象的创建和使用分离,通过第三方(例如容器)在对象...
"IoC 依赖注入 技术总结" IoC 依赖注入技术是软件设计中的一种重要技术,旨在解决软件系统中的耦合问题。该技术的核心思想是将被调用构件实例化,并注入到调用构件之中,以实现软件系统的高内聚、低耦合。IoC 依赖...
首先,我们需要了解什么是依赖注入(Dependency Injection,简称DI)。依赖注入的基本思想是,对象不应自行创建或查找其依赖项,而是应由外部实体提供。这样可以降低对象之间的耦合度,使代码更易于理解和测试。 ...
首先,让我们了解什么是依赖注入。依赖注入是解决软件组件之间依赖关系的一种方法。在传统的编程中,一个类通常会直接创建它所依赖的对象,这会导致代码紧密耦合,难以测试和重用。而通过依赖注入,对象的依赖关系...
【Spring依赖注入详解】 在Java开发中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)功能而闻名。依赖注入是一种设计模式,它允许我们解耦组件,使我们的应用程序更加灵活,易于测试和维护。本篇...