`
chelsea
  • 浏览: 117806 次
  • 来自: ...
社区版块
存档分类
最新评论

简单至及的AOP和IOC

    博客分类:
 
阅读更多

I. AOP的例子

1, Google Toolbar: 拦截弹出式窗口,为ISBN加上到Amazon的链接

原始的html文档对google toolbar对它做的手脚一无所知,toolbar得到原始文档后开始根据特定的匹配条件往里面织入代码:

  • 如果里面有调用弹出式窗口的代码,就围绕着这段代码插入注释

  • 如果里面有ISBN号码,就为这段文本插入一段链接<a href="http://www.amazon.com/isbn=xxxx">之类的

最终显示在浏览器里,将少了弹出式窗口代码,多了ISBN的链接

2, Ctor/Dtor

其实传统的支持面向对象的语言也已经不自觉的包含了现在被称为AOP的思想,这就是构造函数和析构函数:编译器自动在对象创建和对象销毁时插入代码,这里的Aspect是“为对象自动管理资源获取和释放的时机”;这种思想扩展一下,比如说在进入或退出特定函数时插入代码,就是AOP了

II. IoC的例子

电梯

即使已经开始接受高等教育,我在前几次使用电梯时依然犯错:当我在较高楼层想下到一楼而此时电梯在较低楼层时,我的第一反映是让电梯上来我好乘坐,于是便按了“上”的按钮,结果是当我进入电梯后,电梯并没有如我希望的那样开始下行,而是继续上行;后来我在医院里,观察到很多如我一样来自农村没有接触过电梯的病人家属,不断的犯着同样的错误

其实当然电梯的使用是及其简单的:当你想下时就按“下”,想上时就按“上”,即可;当你想自己“控制”电梯时,事情就变得麻烦了

因此电梯和IoC的思想是一致的:说出你的需求即可,背后的控制由系统来做

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics