首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

依赖注入与统制反转_通俗比喻

2013-09-28 
依赖注入与控制反转_通俗比喻文艺:赤土神州浩瀚无边,其中的南胜州,永夜森林中有一个原始部落,他们每次打猎

依赖注入与控制反转_通俗比喻
文艺:

        赤土神州浩瀚无边,其中的南胜州,永夜森林中有一个原始部落,他们每次打猎都会带回很多鸟蛋,蛋的大小被划分成大中小三种,每次他们只会采集一个型号的蛋。在回去部落前,他们会派出斥候,通知部落中管理器械的大司猎带回的是哪一种型号的蛋,大司猎会准备相应的放蛋的镂空木板,分大中小三种,对应每种木板会有相应的取蛋器。他会派人将这些木板和取蛋器集装在一个黑盒子中,运到部落门口,在那里早有部落中的少女们等着。

        当勇士们(在这里我们不讨论掏鸟窝算不算勇士)回来之后,少女们就会打开黑盒子,将勇士们的蛋装进木板中。


文艺解析:

       1.少女们不关心拿来的是什么型号的木板,也不关心勇士们蛋的大小。事实上,她们要做的只是用取蛋器将蛋嵌在木板的孔洞上。

       2.大司猎根据斥候的报告装箱相应的木板和取蛋器。

       3.这些木板和取蛋器大同小异,都是工匠根据同一个 原始抽象构想 针对 实际情况 实现。



程序员眼中的文艺:

      接口:为了解决每次装蛋的繁琐过程,部落中的人想到一种流程,将蛋放在一种带洞的板上卡住,他们创建了一个木板工具套的接口,命名为取蛋套装。

      实现接口的类:大中小取蛋套装实际了取蛋套装这个接口,并且定义了工具使用的方法。

      容器:容器(大司猎)决定注入哪种取蛋套装。

      取蛋操作流:少女作为泛型类,她们事先并不知道会使用哪种取蛋器,只有到了现场她们才会自动使用容器中的方法和属性。

      实际应用:勇士组织是整个流程的实际使用者,他们通知大司猎装箱,调用少女为他们装蛋……


伪代码表示:

     接口:

 public class Hero    {         Containerx con =new Containerx();        Virginity virg = con.setBean();        //输出"I am for BigEgg!"        virg.sayYou();    }


      
龙觉寺CSDN_BLOG...原创...不总结永远一知半解,一知半解比无知更可怕

热点排行