- 浏览: 117806 次
- 来自: ...
文章分类
最新评论
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的思想是一致的:说出你的需求即可,背后的控制由系统来做
发表评论
-
Architecture is layered
2004-12-11 11:57 375那天被问道软件架构师需要了解编程语言的细节吗? 呵呵,架构是 ... -
Thinking Everyday
2004-12-11 12:01 4351,编程语言的发展趋势 ... -
糟糕命名集锦
2004-12-11 16:50 5661,公交支线,如375和375 ... -
古代的软件开发 (一)
2005-02-19 16:45 6731,额外的中间层鞋子:人类发明鞋子的意义无论如何评价都不过分, ... -
访问控制 : 语言和平台
2005-03-15 19:27 609程序逻辑上的组织方式(如名称空间,包等)可以和部署时的分发 ... -
Thinking Everyday II
2005-03-17 15:11 6161, 是业务,不是技术,傻瓜 是集成,不是编程 是使用,不 ... -
内容与标准为王:下一代互联网与下一代搜索
2005-07-25 14:53 698第一代互联网混淆了真正的数据和它的表现形式,第一代搜索无法 ... -
个性与定制为王:下一代互联网和下一代门户
2005-07-28 11:28 593看一下现在我与互联网有关的生活:我有两三个常用的Web邮箱 ... -
泛型编程 vs. 面向对象
2005-08-10 14:30 805面向对象:封装(数据抽象)是基础,继承是手段,多态是目的 ... -
函数式编程 vs. 对象式编程
2005-08-10 14:44 647<<我爱我家>>有一集和平摔成了脑 ... -
用手机从ATM取钱
2005-11-21 22:49 691手机的以下两个特性,使它潜在的可能成为统一的支付和信用平 ... -
Web 3.0 : Unified Human-like Interaction
2006-01-14 16:31 696你还在到搜索引擎的主页上去搜索吗?你还登录新闻网站查询最新比赛 ... -
软件生物学
2006-01-14 16:59 644长久以来,软件的建筑学隐喻已经深入人心,可始终无法达到建筑 ... -
广义对象论
2006-01-25 15:31 682前几天本想接着以前的思维中对“3.2 Programming ... -
Thinking Everyday III
2006-03-26 14:17 7831, RAII让我告别了delete,IoC让我告别了ne ... -
TDD: Tricky Driven Development
2007-05-10 07:07 588命名 测试用例的名字应该描述需求, 不要描述实现. ... -
Thinking Everyday IV
2007-05-15 04:36 5141, 实际上 C# 2.0 已经部 ... -
迭代本质论
2008-02-14 13:58 624新年伊始, 可能你又要制定一些计划了, 实际上, 你的生活在开 ... -
建筑的永恒之道
2004-08-10 18:31 6462,质 这种特质是任 ... -
姑苏慕容与软件开发
2004-10-06 11:47 628一,逆向工程 那女子 ...
相关推荐
Jupyter-Notebook
Jupyter-Notebook
高效甘特图模板下载-精心整理.zip
lstm Summary Framework: z = U>x, x u Uz Criteria for choosing U: • PCA: maximize projected variance • CCA: maximize projected correlation • FDA: maximize projected intraclass variance
OpenGL调试工具,适合图形开发者,包括视频开发,播放器开始以及游戏开发者。
全国行政区划shp最新图.zip
全国研究生招生与在校数据+国家线-最新.zip
Jupyter-Notebook
直播电商交流平台 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
《林黛玉进贾府》课本剧剧本
2000-2020年沪深A股上市公司融资约束程度SA指数-最新数据发布.zip
PPT模版资料,PPT模版资料
CPA注会考试最新教材资料-最新发布.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
内容概要:本文提供了一个完整的职工管理系统的C++源代码。通过面向对象的编程方法,实现了包括创建新职工、查询、增加、修改、删除、排序、统计以及存储和恢复职工数据在内的多个基本操作功能。该系统支持不同的用户角色(如管理员与老板),并通过菜单驱动方式让用户方便地进行相关操作。此外,还包括了错误检测机制,确保操作过程中的异常得到及时处理。 适合人群:有一定C++语言基础,特别是面向对象编程经验的程序员;企业管理人员和技术开发人员。 使用场景及目标:适用于中小型企业内部的人力资源管理部门或IT部门,用于维护员工基本信息数据库,提高工作效率。通过本项目的学习可以加深对链表、类和对象的理解。 阅读建议:建议先熟悉C++的基本语法和面向对象概念,再深入学习代码的具体实现细节。对于关键函数,比如exchange、creatilist等,应当重点关注并动手实践以加强理解。
Jupyter-Notebook
考研公共课历年真题集-最新发布.zip
Huawei-HKUST Joint Workshop on Theory for Future Wireless 15-16 September 2022 华为-香港科技大学未来无线理论联合研讨会 Speaker:Jingwen Tong
演出人员与观众疫情信息管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
《林黛玉进贾府》课本剧剧本.pdf