简单来说IOC就是说明了“时事比人强”的现实的依赖倒置需求。如果你稍微进入正规的“产品”研发团队,你会遇到那种“以前的组件需要组合到现在的新组件”里的情况。聪明的设计者会在设计组件时预留“事件通知”接口功能,这个事件通知的定义丝毫不需要依赖于被通知对象的类型定义。 比如说你用现成的TextBox控件来完成各种录入,这个控件会通知你的程序“TextChanged”事件。这里你会发现TextBox控件丝毫也不依赖于你调用它的对象的类型。
[quote=引用 5 楼 caozhy 的回复:] 很简单。要想体会到它的好处取决于你需要这样一个场景。 你的开发团队有2个以上的人,并且你们有合作关系,而不是个人开发一块,你负责为另一个开发者提供代码,而不是直接编写为最终用户使用的程序。 那么无论IOC还是AOP,它的好处出来了。你希望你写出通用的程序,所谓通用就是你写一个可以给你的同事直接使用的代码。但是因为要适应各种需求,其中某些需要变化的代码需要留给他来写。那么你需要留出“占位符”,或者说“注入点”,也可以说“可扩展点”。你允许别人把他们的代码插入其中。
很简单。要想体会到它的好处取决于你需要这样一个场景。 你的开发团队有2个以上的人,并且你们有合作关系,而不是个人开发一块,你负责为另一个开发者提供代码,而不是直接编写为最终用户使用的程序。 那么无论IOC还是AOP,它的好处出来了。你希望你写出通用的程序,所谓通用就是你写一个可以给你的同事直接使用的代码。但是因为要适应各种需求,其中某些需要变化的代码需要留给他来写。那么你需要留出“占位符”,或者说“注入点”,也可以说“可扩展点”。你允许别人把他们的代码插入其中。
嗯sorry,更正一下,面向对象5原则应该是 Robert Martin 的书中的,我把作者名字弄混了。 那本书你也可以借来看看。这本书获得了图灵《震撼大奖》,不过说实在的,今天看来它似乎缺乏一些深度。但是这本书上毕竟有许多小代码的例子,可以让你对敏捷和OO都能同时入门的许多小例子,还是不错的。
62,046
社区成员
669,049
社区内容
加载中
.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。
希望和大家一起共同营造一个活跃、友好的社区氛围。
试试用AI创作助手写篇文章吧