设计模式论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计模式论文

摘要:面向对象框架是一种大型的面向对象复用技术,它兼有设计复用和代码复用的优势,为基于复用的软件开发提供了一种强有力的工具。jhotdraw便是这样一个著名的例子,它是用来简化绘图应用程序的可高度定制化的gui框架。本文将通过jhotdraw中应用的几个重要设计模式来解释jhotdraw框架及框架的基本原理。

关键词:设计模式;框架

java-based shortest path algorithm application and demonstration

sun kaiting

(dongying technician

college,dongying257097,china)

abstract:object-oriented framework is a

large-scale software reuse technique.it has the advantages of both design reuse and code reuse, providing a powerful tool for software development based on software reuse.

a well-known example of this is jhotdraw,a highly customizable gui framework that simplifies developing drawing applications.this article explains the

jhotdraw framework and general framework principles in terms of several important design mode.

keywords:design mode;framework

一、设计模式和框架的理论

当开发者使用框架时,要重用代码和重用一个原型程序的设计和架构。框架需要经过一些调整来满足问题领域的需要,通过调用一些用户定义的组件控制整个控制流程。应用框架会依赖设计模式来获得一个灵活通用的应用程序设计。

二、jhotdraw的描述

jhotdraw为一个基于gui的编辑器提供以下内容:整合在工具调色板中的各种工具、不同的视图、用户自定义的图形元素、还有对图像保存、载入和打印的支持。本文将讨论一个简单的类图编辑器的开发过程,它是对jhotdraw的简单应用。在这个模型里主要的类是jmodellerclass,如果类之间的关联、依赖和继承关系变的复杂,可在模型中添加一个专用的类来跟踪这些关系的属性和行为。

三、jhotdraw的结构

所有的jhotdraw类和接口都按照功能放在不同的程序包中,ch.ifa.draw.frame work里存放的是核心组件所需要的大部分接口,这些接口描述了核心组件的责任、功能和内部操作。

任何使用jhotdraw的应用程序都有一个用于画图的窗口,这个窗口内嵌多个内部窗体,每个窗体都与一个drawing view相连,它是一个可以显示图像和接受用户输入的区域。图形的改变会传播到它,然后对它负责更新这些图像。

四、jhotdraw的设计模式

(一)mvc模式

jhotdraw架构是按照mvc模式指导设计。基于jhotdraw 架构的绘图编辑器所具有的功能主要是从以下的交互实现的:1.一些基于java swing的类。2.个控制器。3.模型类。在jhotdraw架构中,可以用工具通过视图图元进行各种操作,视图在这里扮演了一个控制者的角色。视图发生改变后通知模型,模型将变化处理后再通知视图已经发生变化。

(二)composite模式

复合设计模式背后的思想是在一个容器里有很多个属

于相同基本类型的组件,但这个容器本身可被当作一个单独的组件,容器方法调用里的所有行为被容器委托到它里面的组件上。通常,客户端的组件不会意识到是在和元素的组合体在打交道,它将其当作一个单独的组件。这种封装技术可用一个组件的继承层次结构来创建一个像compositefigure 这样的复合体,在这个结构中所有组件就像是一个单元整体的样子来与别的模块交互。

(三)state模式

在jhotdraw里,工具调色板里有很多工具,可用来选择、加工或者创建一个图形元素,有时,还需定义自己的工具来完成其它功能。一个classfigure包含很多个textfigure用于保存类名、属性和方法的信息,

ch.ifa.draw.standard.selectiontool只能激活被选中的

容器。要想通过双击某个classfigure来编辑它所包含的textfigures,可使用

ch.ifa.draw.contrib.customselectiontool。这个类还会处理图形元素的弹出窗口。

(四)strategy模式

用于表示classfigure类的图形元素只负责本元素的绘制,图形表示和布局管理的算法是相互独立的。布局算法被从classfigure中分离出来,并被封装成一个外部的类,它对这个classfigure有广泛的访问权限,并能对其进行控制。如果我们要放置一个classfigure,这项任务会被委托给ch.ifa.draw.contrib.figurelayoutstrategy类来完成,这个类有遍历组件所有子组件并且放置他们的逻辑步骤。

(五)template模式

类图显示类,associationlineconnection元素代表了两个类之间的线性联系,它可变成直接的联系或是聚合关

系。模板方法定义一个总要执行的命令序列,在这个命令序列中,另一些方法总在某个确定的时候被调用。于是子类可在不改变总体行为的情况下添加和具体应用相关的指令。因此associationlineconnection 和inheritancelineconnection只需对这些需要的钩子函数进行重定义,从而建立起两个类之间的关系。

五、结论

相关文档
最新文档