Martin Flower在2004年初的一篇论文中问到,控制的什么地方被反转了?他总结说是获得以来对象的方式反转了。根据这个提示,他为控制反转提出了一个更好的名字叫做依赖注入。
任何重要的系统都需要至少2个相互合作的类来完成业务逻辑。通常,每个对象都要自己负责的到它的合作(依赖)对象,这样会导致代码耦合度高,而且难以测试。
使用控制反转,对象的依赖都是在对象创建时有负责协调系统中各个对象的外部实体提供的,这就是依赖被注入到对象中。所以,控制反转意味着关于对象如何的到它的写作对象的责任反转了。
假设你们公司最棒的销售团队聚集在一起交流他们的专业市场分析及研究结果,最后认为客户最需要的是骑士。也就是说,他们需要一个Java类来表示一个骑士。在考察了他们的需求后,你知道了他们的确切需求对你来说就是实现一个类,用它表示亚瑟王的圆桌骑士,这些骑士勇敢地从事着寻找圣杯的神圣任务。
Quest接口
Knight接口
HolyGrailQuest
KnightOfTheRoundTable
KnightApp
knight.xml
发表于 @ 2009年04月29日 10:42:00 | 评论( loading... ) | 举报| 收藏