• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 农林牧渔 > 正文

    基于Java的最短路径的算法实现与演示

    时间:2020-09-14 07:51:15 来源:达达文档网 本文已影响 达达文档网手机站

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

    关键词:设计模式;框架

    中图分类号:TP312.1文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

    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只需对这些需要的钩子函数进行重定义,从而建立起两个类之间的关系。

    五、结论

    设计模式是一种可达到高度可复用的软件架构的方法,它适用于将架构写成文档,以方便别的开发者理解。JHotDraw就是一个框架的好例子,它由一些基础的设计模式组成。了解在这些模式之后的基本概念和这些模式在JHotDraw里的应用,会帮助决定如何定制和调整这个框架以满足应用程序的需求。虽然学习一个框架需要额外的努力,甚至在一开始会拖慢你的进度,但是在后期设计过程中,像JHotDraw会大大缩短开发时间并提高软件质量,是一款非常优秀的架构。

    相关热词搜索: 最短 算法 路径 演示 Java

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网