外文翻译基本框架设计模式

上传人:汽*** 文档编号:565019925 上传时间:2023-07-23 格式:DOCX 页数:7 大小:95.30KB
返回 下载 相关 举报
外文翻译基本框架设计模式_第1页
第1页 / 共7页
外文翻译基本框架设计模式_第2页
第2页 / 共7页
外文翻译基本框架设计模式_第3页
第3页 / 共7页
外文翻译基本框架设计模式_第4页
第4页 / 共7页
外文翻译基本框架设计模式_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《外文翻译基本框架设计模式》由会员分享,可在线阅读,更多相关《外文翻译基本框架设计模式(7页珍藏版)》请在金锄头文库上搜索。

1、基本框架设计模式Essential Framework DesignPatternsWolfgang PreeUniversity of ConstanceD-78434 Constance, GermanyVoice: +49.7531.88.44.33; Fax: +49.7531.88.35.77E-mail: preeinformatik.uni-konstan z.de摘要大多数优秀的面向对象的框架仍然或多或少的处于混乱发展过程中,通常 进行的类似设置的研究。这种贡献首先涉及几点框架建设的基本原则。框架代表 的是特定域的通用解决方案,使面向对象软件配置的全部潜力得以开发:不仅源 代码

2、和单个组件,体系结构设计也被重复使用。预定义细化发生的适应点我们称 之为扩展点。如果发现这些扩展点有明确的需求阶段,它们能以基本的形式组合 成特定域的设计模式。这种扩展点驱动的框架设计可以为一个更系统的发展过程 做出贡献。关键词:设计模式,框架,面向对象设计,面向对象软件发展,软件可重用 性1. 框架类型框架非常适合大量类似的应用程序的重写。框架结构定义了一种通过创建 特定领域的应用程序的高级语言专业化(二适应)。特定领域的一种扩展槽我们 称之为扩展点。如果一个框架提供了足够的可以改编的扩展点,我们就认为这是 一个具备合格属性的框架。例如,Lewis et al. (1995年)提供大量高质量

3、框 架。白盒框架中的扩展点白盒框架由几个不完整的类组成,也就是类包含没有实际实现的办法。A类 的抽象方法必须在子类中重写。这种类型的框架中的抽象方法形成扩展点。图 1的示例框架中描述的A类层次结构说明了一个白盒框架的这一特性。A类的抽 象方法必须在子类中重写。这种类型的框架中的抽象方法形成扩展点。图1示例框架类层次结构程序员通过衍生子类或重写父类的成员方法来修改白盒框架的方法。必须重 写的方法意味着程序员必须在一定程度上了解框架的设计和实施的细节信息。黑盒框架的扩展点黑盒框架提供了现成的适应修改的组件。修改通过组装,而不是通过编程。 扩展点还对应于重写方法,虽然适应框架的扩展点只是作为处理组件

4、的一个整 体。在图1中的类层次框架结构中,B类已经有两个子类B1和B2提供默认实现 的抽象方法。假如框架组件之间的交互如图2(a)所示(图2中线表示组件之间 的交互。)应用程序与这一框架相适应,例如,通过实例化类A1、B2插入相应的对象(请参阅图2(b).在B类该框架提供现成的子类;在类A中程序必须先 创建子类。 AI锄图2框架经专业组合前(a)后(b)可用的框架既不是纯粹的白盒框也不是纯粹的黑盒框架。如果框架大量回收 再利用,无数专家都建议用黑盒框架而不是只提供一个默认界面的白盒框架。因 此当成熟后白盒框架将越来越多趋向于黑盒框架。2. 钩的灵活性类方法可以分为钩方法和模板方法:钩方法被视为

5、具有更多可灵活调用的扩展点问题复杂的方法的地方。这些复杂的方法通常被称为模板方法1(Wires-Brock et al. , 1990 年 10 月;Gamma et al.,1995 年;Pree, 1995 年)。模板方法定义抽象类的行为方法或泛型的控制流或对象之间的交互。钩方 法的基本思路是通过允许重写钩继承一个对象的更改,无需改动相应类的源代码 的行为。图3体现了面向对象语言低耦合的这一原则。A类的t()方法是调用钩 方法h()的模板方法,如图3(a)中所示。钩方法是一种抽象方法,只有空的或 默认的实现。图(b)钩方法重写A1子类。(a)A1A(b)图3 (a)模板钩方法和(b)钩重载

6、让我们定义一个包含正在讨论的钩类H和包含模板类T。钩类准参数化模板 类,注意这是一个上下文相关的区别而不考虑两种类的复杂性。结果是,灵活性 结构原则的基本设置可以从考虑两个类之间的所有可能组合派生而来。因为模板 和钩类可以具备任何的复杂性,下面讨论的建设原则就扩大了规模。所以领域特 定的语义模板类和钩类淡出,如何实现框架的可变性变得清晰。2.1. 统一与分离模式如果模板类和挂钩类统一在一个类中,如图4 (a)称为TH,只能通过继承 得到,那样的话应用程序需要重新启动。THT H图4模板类和钩类的统一 (a)与分离(b)分离模板和挂钩类等同于(抽象)这些类的耦合对象,使T对象的行为部分被 修改,

7、即插入特定H对象。T和H直接关联表示T对象拥有H对象。T对象为了调用钩方法必须将消息 发送到相关的H对象,所以这个关联变得重要。通常一个实例变量T保持这样一 个关联。其他的可能是通过参数传递的方法对象引用全局变量或临时变量。T和 H对象之间的实际耦合是无关的实现细节,不作进一步讨论。关联所表示的语义 也是一样。例如,对象的关联是指向用途或是关系的一部分取决于在特定的上下 文和需要,不需要区分这些核心领域的构建原则。一个分离模板和钩类也形成的前提下运行时的适应,定义H的子类,插入T 的对象,同时应用程序正在运行。Gamma et al.,(1995年)和Pree (1996年)研 究过一些非常有

8、用的例子。2.2. 递归结合模式模板类也可以是钩类的派生类(见图5(a)。在特例中,模板和挂类是统一 的(见图5(b)。递归成分有个共同点,他们允许建立关联对象的有向图。此外, 一些模板方法的特定结构,这些组成保证在对象图中消息的转发。一个特定的结构模板的方法,这是典型的对这些成分,保证转发消息的对象 图。简单的模板和钩类分离与更加复杂的递归分离的不同在于场地通过适合的组 合被扩大。不是用直截了当的方式简单的插入两个对象,整个对象的有向图可以 被组合。所涉及的问题在Pree(1995年,1996年)中有详细讨论。图5模板和钩类的递归组合2.3. 钩作为Go模式目录条目的标识符名称下面我们假定读

9、者对初期四人组(Gamma et al.,1995)目录模式熟悉。Go 目录中的大量条目表示小框架,就是框架组成的几个类,少数基本的构造模式在 大量或多或少领域无关的情况下应用。因此这些目录条目都对设计框架有很大帮 助,因为它们说明了典型的钩语义。一般情况下,通过钩来保持灵活性使得目录 条目的名称与语义方面有密切联系。2.4. 基于模板-钩分离的模式很多框架中心的目录条目依赖于模板和钩类的分离(见图4(b)。两个目录 模式,模板方法和桥梁模式,描述这项构建原则。以下目录模式基于抽象耦合: 抽象工厂,生成器,命令,翻译,观测器,原型,状态和策略。请注意这些目录 模式的名称与在特定的模式下保持灵活

10、性语义方面对应。语义方面在特定的钩方 法或类的名称再次被反映。例如,在命令模式“下何时以及如何完成请求” (Gamma et al.,1995年)代表扩展点的语义。钩方法的名称(实施()和钩类(命令) 反映了这一点并且确定了整体目录条目格局的名称。2.5. 基于递归组成的模式目录条目中的合成模式(见图5(a): T和H是1对多的关系),装饰 模式(见图5(a)T和H是1对1的关系),责任链模式(见图5(b)与递归模板 -钩组合对应。3. 怎样去寻找特定领域模式早起阶段扩展点的辨别(如领域中的需求分析)应该成为发展过程中的一个 显式活动。有两个原因:设计模式,在类似目录窗体中的展现,混合设计原则

11、像 及像上面概述的特定领域。当然,它作用不大,仅仅是将设计模式与语义分离, 以骨架构建原则脱离框架设计。相反,这些构建原则一定要与框架被开发的域的 语义相结合。扩展点的辨别提供了此信息。图6概述了基本建设原则与特定域的 热点配对的协同效应。得到的结果是为特定域量身定做的设计模式。essenti al framework construction principlesydomain-specific design patternshot spot semantics (eg, captured in hot spot cards)图6基础框架结构原则+扩展点二特定域的设计模式扩展点标识可被扩展卡

12、支持,成为领域专家和软件开发人员的通讯工具。Pree(1996)给出了扩展点卡的概念和当它们被应用时的详细案例研究。另外一个 为什么显示扩展点有所帮助的原因是,可以源于下列现实世界开发框架的影响因 素的研究:很少有两个或者更多个相似的随时可用的系统来研究它们的共性。通 常情况下,一个太具体系统构成框架的基础发展。此外,共性应远远超出的灵活 方面一种框架。如果一个框架的扩展点不明显多于标准点,该框架科技的核心利 益,也就是说,一个广泛的标准化体系结构,削弱了。结果就是,关注扩展点似乎 比尝试找到共性更加成功。4.前景以上我们讨论开发框架的技术方面通过呈现设计模式的基本框架。组织措施 与成功同样重

13、要,因为开发框架需要完全背离今天的项目文化。戈德堡和鲁宾 (1995年)详细介绍了这些方面。参考文献1 Gamma E., Helm R., Johnson R. and Vlissides J. (1995). Design Patterns一Elements of Reusable Object-Oriented Software. Reading, Massachusetts: Addison-Wesley2 Goldberg A., Rubin K. (1995). Succeeding with Objects 一Decision Frameworks for Project Man

14、agement. Reading, Massachusetts: Addison-Wesley3 Lewis T. et al. (1995). Object-Oriented Application Frameworks. Greenwich, CT: Manning Publications/Prentice Hall.4 Pree W. (1995). Design Patterns for Object-Oriented Software Development. Reading, MA: Addison-Wesley/ACM Press Pree W. (1996). Framework Patterns. New York City: SIGS Books Wirfs-Brock R. and Johnson R. (1990). Surveying Current Research in Object-Oriented Design. Communications of the ACM, 33(9)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号