Aspect 关注于“有相似需求的考察对象”的群体特性。其
相似性在群体中表现得越广泛,则 AOP 的优势也就越明
显。例如在 Delphi 的 VCL 框架中,以下两个需求就可以
① 人们在争论Aspect 到底应该译成“切面”还是“方面”这件事上
花了很多功夫。其实,就如同讨论前面的“关注点”究竟是“点”
还是“线”的问题一样,他们陷入了细节。如果这些细节被作为
问题持续下去,那么可能有一天台海战争将不是发生在军队之间,
而是在程序员之间:到底是“物件”,还是“对象”?
② 在C 中,这个名词是“结构(Struct) ”。很多人不会承认“对象是
有继承关系的记录”这样的观点。是的,所有的教科书上都不会
这样写。但是从数据结构本身以及数据结构在语言中的实现来看,
对象终究是记录。记录是平板化的内存存储体系中所能表达的最
复杂的单一数据体。
…94
…………………………………………………………Page 99……………………………………………………………
『大道至简』
用 AOP 的思想来实现:
) 使 Delphi 中的全部对象具有多线程特性( 即线程
安全) ;
) 实现助手工具类以观察、控制 Delphi 对象的运
行期特性或表现。
到现在为止,我们弄清楚了 AOP 作为“思想、方法、
工具”的一些基本知识,以及它的应用范围:至少你要明
白,他是用来考察对象(而不是设计对象) 的思想方法。
所以接下来 AOP 的三个概念我们就明白了:
) 指示(advice)/拦截器(interceptor) :考察这些对象
以“达到什么样的目的”( 即需求) ;
) 引导(introduction) :在目标上实现这些需求时,
目标所需要表现出来的公共特性。引导特性可能
需要配合编译器来实现。
) 元数据(metadata) :如果需要,为既有对象实体
再补充一些参考数据。
确切的说,切分点(Pointcut)并不是 AOP 编程方法所
需要的概念,而是 AOP 作为一个框架时所需要的一个工
具:一组辨识 Acpects 和 Objects 的索引。
现在你已经会用 Acpect 的思想来编程了,而无论它
是用 Java 来实现的,或者是用 C# 、Delphi ,乃至于
FORTRAN 或 COBOL 。你需要做的是,回到工程最核心
的那个环节:编程=算法+结构+方法。
…95
…………………………………………………………Page 100……………………………………………………………
第 7 章 现实中的软件工程
5。 审视 MDA/MDD
MDA(Model Driven Architecture) 也是一个方法论层
面上的名词。它讨论的是“创建出机器可读和高度抽象的
模 型 ” 的 方 法 。 受 MDA 影 响 的 开 发 活 动 被 称 为
MDD(Model Driven Development) 。
与 MDD 在同一个层面上的概念是:
) TDD(Test Driven Development)
) FDD(Feature Driven Development)
) BDD(Business Driven Development)
) R…TDD(Rapid Template…Driven
Development)
) CDD(Contract Driven Development)
) RDD(Requirements Driven Development)
) 。。。
我不厌其烦地罗列这些名词,只想告诉读者一个事
实:什么都可以“驱动开发”。
不同的方案提供商基于自己的产品构架和当前的理
论倾向,随时都在准备改变他们“驱动开发”的方式。在
这种形势下的 “xDD ”或“xDA ”,已经成为他们促销产
品的保留用词。
回到软件工程的过程环节中来吧,你会看到,“以什
么驱动开发”只是一个“以哪个环节为中心(或导引) ”的
问题。所以你会看到 TDD 中的 X 模型(也可参考 V 模型)
是这样的:
…96
…………………………………………………………Page 101……………………………………………………………
『大道至简』
如果你仍旧不能明白为什么会有这么多被神秘力量
所“驱动着的开发”,那么你就干脆去厨房找个平底锅烧
点热油,然后敲下一个鸡蛋,很快,你就体悟“以蛋黄驱
动开发”的真谛了。
抛开实现的技术细节不论,在工程中,“以什么驱动
开发”其实是一个过程问题。而你应该明白,过程的选择
(或制定)取决于你的工程需要,以及它在相关应用领域的
适用性、过程工具的充备性和这个过程理论的完善程度,
而不是大公司们的鼓吹。
过程模型决定了工程的实施步骤和组织方式。但是
Object Management Group (OMG) 尽管对 MDA 提出了一
套完备的技术和方法体系,工程实施者却无法在这个体系
中找到一个可以适用的软件过程模型。——MDA 不讨论
过程。
…97
…………………………………………………………Page 102……………………………………………………………
第 7 章 现实中的软件工程
也就是说,MDA 架构作为一个新的软件开发方法的
架构,即使在技术研究、底层协议和软件实现方面经过了
持续地完善而渐至成熟,然而如果没有同样成熟的软件过
程理论支持,那么它在工程中的实用价值也就有限。
仔细审视一下这个 MDA ,如果你现在就决定将下一
个工程项目建立在这个构架的基础上,或者用 MDD 的方
式来开发 BIOS ,那么你离精神病就不远了。
…98
…………………………………………………………Page 103……………………………………………………………
第8章 是思考还是思想
“此郎亦管中窥豹,时见一斑。”
——《晋书·王献之传》
1。 软件工程三个要素的价值
思考问题的方法可以是由点及面的,也可以是统揽全
局的。换成业界最常用的词汇,就是“自上而下”还是“自
下而上”的区别。
“牛屎图”中描述的工具、方法与过程也被称为软件
工程的三个要素。在本书中他们被分解开来思考,并不是
要孤立这个三个层面。——它们实际上是相互作用的。
例如“过程”问题,就既有实施过程的工具,也有相
关的过程方法理论。我虽然说方法是“基于一种数据结构
的编程实践的结果”,但这实在一种非常狭义的定义。这
个定义在过程的开发环节是有效的(或者说是对“开发方
法”的定义) 。然而“需求”、“设计”、“测试”等等其它
环节也有各自的方法论,即使站在具体环节之外,过程本
身也有方法论的问题,这还不包括管理方法等等在内。
由于方
小说推荐
- 软件工程思想
- 作者:林锐前 言 在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地
- 最新章:第53章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- Linux实用培训教程(PDF)
- -Page 1-rrktqt的个人空间 Linux实用培训教程第一部分 作者:红联Linux实用培训教程第一部分-共三部分解的Linux知识,循序渐进的介绍Linux相关知识,从入门到提高,希望对所有学习Linux的朋友都有帮助 红联Linux论坛是致力于Linux技术讨论的站点,目前网站收录的文章
- 最新章:第42章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章