简单至及的AOP和IOC

王朝other·作者佚名  2006-03-28
窄屏简体版  字體: |||超大  

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的思想是一致的:说出你的需求即可,背后的控制由系统来做

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航