OUCL-for-UNIX介绍.doc_第1页
OUCL-for-UNIX介绍.doc_第2页
OUCL-for-UNIX介绍.doc_第3页
OUCL-for-UNIX介绍.doc_第4页
OUCL-for-UNIX介绍.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SCO UNIX/LINUX环境下面向对象的程序设计&Object UNIX/LINUX Class Library应用程序编程框架技术报告林风人目 录第一部分 Object UNIX Class Library综述3第二部分 Object UNIX Class Library编程机制62.1 面向对象的应用程序编程62.2 一个较好的UNIX接口62.2.1 封装窗口信息72.2.2 抽象化curses函数72.2.3 自动消息响应8第三部分 采用Object UNIX Class Library的好处93.1提高编程效率93.2提供一致编程界面,迅速培养新招大学生成为编程高手93.3可视化开发OUCL应用程序10第四部分Object Unix/Linux Class Library界面显示效果104.1 窗口104.2 对话框124.3 编程控件13第五部分 Object UNIX Class Library与同类产品的比较17第六部分 Object UNIX Class Library的发展19第一部分 Object UNIX Class Library综述Object UNIX Class Library提供了一种有趣的开发SCO UNIX环境下的文本模式应用程序的新方法。直到最近,大多数UNIX编程都需要UNIX C编译器和大量分离而复杂的开发工具,这样,UNIX应用程序开发显得冗长、复杂和令人费解。借助Object UNIX Class Library应用程序框架,UNIX编程就容易了许多。在大多数交互式的UNIX应用程序中,用户的界面元素操作处理以及程序内部的消息循环需要编程人员花费大量的时间并利用大量的case语句来分析用户该执行哪些操作。这就需要一个比较熟练的编程人员来实现它并掌握许多的SCO UNIX下的API函数以及界面处理的curses库函数,为编写一个可用的交互式应用程序,您可能必须掌握它们。Object UNIX Class Library提供了一个面向对象的类库,其中封装了UNIX应用程序都要执行的(程序级和窗口级)行为。Object UNIX Class Library用以简化UNIX开发的手段是:l 一个一致、直观简捷的UNIX应用程序接口l 提供菜单、窗口、对话框以及许多类似VB的控件l 为窗口管理和消息处理提供的行为l 用于构造UNIX应用程序的基本框架由于程序员可以“继承”这些基本功能,故可以把主要精力放在应用程序的功能实现上。通过应用程序序编程框架及类库Object UNIX Class Library大大地缩短了程序开发的周期,程序可维护性、可再用性强,极大地提高软件开发的效率。通过本系统提供的编辑编译平台以及Object UNIX Class Library应用程序开发类库平台,用户可以很方便地维护应用程序工程结构并跟踪定位应用程序编译的错误信息并在Object UNIX Class Library类体系结构基础上进行应用程序的快速开发。用户可以简便地设计交互式程序界面并自动具备交互式系统所必须的窗口、菜单、对话框以及其他一些必要的界面元素如按扭、互锁键、校验键、列表框、下拉列表框、数据库浏览等控件并提供必要的打印驱动程序等功能。Object UNIX Class Library(OUL)类库系统提供一致性的外观和命令结构,这使得编写SCO UNIX环境文本模式下的应用程序变得更加容易,OUL类库提供了大量的内部类成员函数,这些函数使得窗口、菜单、对话框以及其他特征更加容易实现,而这些特征是一个用户友好界面必不可少的要素。Object UNIX Class Library(OUL)类库系统采用统一的应用程序基于类似Windows窗口环境下的消息处理,用户可以方便地定义自己的消息响应方式并由本OUL消息循环处理程序自动处理,使得用户可以不必关心应用程序本身的界面处理,而只是处理按下回车键以后的业务处理。Object UNIX Class Library(OUL)类库系统是一个基于控件的消息处理循环,OUL类库含有创建、初始化窗口和对话框的过程,基于这种模式,用户可以定义应用程序本身需要的屏幕控件元素并定义按下某控件以后的业务处理,而无须编写如何连接这些控件于应用程序的消息循环中,简化开发过程并使得开发应用程序的速度加快,达到快速开发SCO UNIX环境下的应用程序的目的。Object UNIX Class Library(OUL)提供了应用程序开发所必须的应用程序类框架以及屏幕元素。OUL类库提供了应用程序的应用类、窗口类、对话框类以及其他的一些控件类,这些类都从单一的基类Object派生,用户可以从现有提供的派生类中再派生出自己的应用程序类,使得程序的复用性加强,加强应用程序的编程效率。Object UNIX Class Library(OUL)提供了三大类:应用程序Application类、窗口Window类、对话框Dialog类。并提供了一系列的控件类如:Button类、Line类、List类、ComboBox类、RadioButton类、CheckBox类、Label类、View类(文件显示)、Edit(行编辑)类、Print类、Group类、Browser(数据库浏览)类、MultiEdit(全屏幕多行编辑)类、Menu类、Directory (目录操作) 类、Color类以及相应的DES加密算法和校验码算法等。通过这些类库,用户可以方便地维护应用程序的结构,并使得编写UNIX下的C+程序就象编写Windows下的VB程序一样简单。本系统提供的Object UNIX Class Library类体系结构如下:C/C+ Object UNIX Class Library 类体系结构基类ObjectDialog类Control控件类Label类Line类MultiEdit类Button类View类Browser类List类ComboBox类CheckBox类RadioButton类Group类Application类Windows类Print类Edit类Print类Edit类Window类第二部分 Object UNIX Class Library编程机制本部分大致介绍面向对象编程上以及介绍UNIX应用程序的构成及其运行机制,同时还能看到如何利用Object UNIX Class Library编写基于UNIX环境下的面向对象程序。这里需要说明的是,由于在UNIX环境下的文本模式编程中,没有象Microsoft Windows环境下的Windows图形界面概念以及编程机制,本系统就假设每个应用程序的界面就是一个文本窗口,而UNIX系统本身的字符文本模式就是一个大的隐含的大窗口,基于这个概念,Object UNIX Class Library提供的就是每个应用程序本身的窗口以及每个窗口内部的界面控制和消息传送机制。这里所说的Windows就是每个UNIX环境下应用程序主窗口。2.1 面向对象的应用程序编程面向对象的应用程序编程要求熟悉许多新概念,对于开发一个交互式的UNIX环境下的应用程序,需要进行一系列的判断和界面设计而令人望而却步。Object UNIX Class Library简化了基于UNIX环境下的交互式窗口编程的过程,它使程序员能够把主要的精力放在应用程序的功能上,而不是放在它的格式上。借助Object UNIX Class Library,程序员可以使用对象来表示比较复杂的界面窗口操作,Object UNIX Class Library的窗口对象封装了所有窗口需要的数据,能执行公共的窗口操作,并且能够响应应用程序本身的Windows的消息和事件。Object UNIX Class Library的窗口类和应用程序类完全掌握了消息的处理。2.2 一个较好的UNIX接口Object UNIX Class Library使用了标准的UNIX C/C+的面向对象特征,把UNIX的curses库函数的主要部分封装起来,并提供交互式应用程序程序所需要用户界面元素,从而使程序员同UNIX编程的细节隔离开来。其结果是,只须花少量的时间和精力便能编写应用程序,特别是,Object UNIX Class Library提供了下述三个有益的特点:l 窗口信息的封装。l 许多curses函数的抽象化并提供许多控件l 自动消息响应2.2.1 封装窗口信息Object UNIX Class Library提供了定义UNIX窗口、对话框及窗口控制的操作与数据存储的对象,在一个Object UNIX Class Library应用程序中,一个界面对象便充当一个可见的UNIX界面元素的代表。在用户创建一个新的UNIX界面元素时,或者是从TWindow类下派生出一个新的窗口时,用户获得了指向该窗口的指针并同时获得该窗口的一些信息如窗口的位置和状态信息。2.2.2 抽象化curses函数在UNIX环境下的文本模式交互式应用程序编程中,需要从curses下申请主应用程序的窗口空间,并采用curses库提供的一系列屏幕操作函数来绘制您的窗口信息即屏幕元素,curses提供了几百个的函数调用来处理用户的键盘操作以便给用户进行交互处理,虽然您可以直接从curses中调用任意的Windows函数,但Object UNIX Class Library通过提供一组对象成员函数来简化调用函数的过程,通过抽象化用户的键盘交互操作,提供一系列界面元素操作如输入条、列表框、校验按钮等标准的屏幕操作来简化用户的编程并使用户的界面一致性。Curses库函数的许多参数都存储在截面对象的数据成员之中,这样,成员函数能用这些数据为Curses函数提供参数。除此之外,Object UNIX Class Library把相关的函数单元组合到单一的成员函数之中,使其能执行更高级的任务,举个最简单的例子,您可以使用Object UNIX Class Library类库提供的行输入,当然,您也可以通过curses提供的函数自己编写一个行输入,但这需要几十行甚至上百行的程序量,如果您不嫌麻烦。这一方法虽然减少了对每个curses函数的依赖性,但不限制您对curses库函数的直接调用。Object UNIX Class Library具备了两方面的优越性:高级面向对象的开发加之对UNIX文本模式环境的最大限度的控制。2.2.3 自动消息响应常规的交互式应用程序需要由程序设计人员对用户的各种可能的按键进行比较来判别该执行哪种操作,通常通过大量的case语句来实现,这使得程序冗长而复杂,而且不编于程序的维护,对于实现应用程序的功能来说,正确处理和响应消息是至关重要的。由于对象具有继承和重定义(成员函数)的能力,故它尤为适合处理和响应各种用户执行的消息。Object UNIX Class Library获取用户消息之后便把它转换成C+成员函数的调用,因此,使用Object UNIX Class Library,程序员可以简单地定义成员函数来响应所编程序需要处理的用户按键的消息。Object UNIX Class Library定义了所有内部控件的键盘消息响应函数,每个控件类都有从基类派生出来的键盘事件成员函数KeyEvent,当用户需要定义自己的对话框时,重载KeyEvent成员函数,来执行不同的用户按键处理,达到消息的封装和自动消息响应。第三部分 采用Object UNIX Class Library的好处综上所述,由于Object UNIX Class Library提供了一个一致性的应用程序接口,并且采用统一的应用程序基于窗口环境下的消息处理,用户可以方便地定义自己的消息响应方式并由本OUL消息循环处理程序自动处理,使得用户可以不必关心应用程序本身的界面处理,而只是处理按下回车键以后的业务处理。这种方式可以使得程序的规范性大大增强,程序的可读性以及可维护性大大加强。所有的技术人员面向的是一个业务流程和基于该业务流程的事件函数,这样,程序的后续维护以及客户化工作很容易使用,不致导致技术人员之间的程序不容易交流。3.1提高编程效率程序开发效率大大加强。采用传统的c语言以及处理屏幕操作的curses函数可以实现业务编程需要,但是,其开发效率比较低,后续修改花费大量的时间,特别涉及屏幕部分的修改,更是花费大量的时间。而采用Object UNIX Class Library,则程序的设计界面清晰,后续维护方便,而且,可以在很短的时间内编出一个很专业的程序。3.2提供一致编程界面,迅速培养新招大学生成为编程高手对于公司大批量新招大学生来说,培训UNIX基础以及在UNIX下进行C程序开发并使得他们能够胜任即将的开发任务是件比较困难的事情,而且,随着技术学习,每个人都能积累一套编程经验或者函数库,但是,互相之间很难沟通。而采用Object UNIX Class Library,可以让他们在很短的时间内完全掌握UNIX下编程技术并且所有他们的技术都基于一个平台,这样为以后的程序维护、可读性有着极为重要的意义,更何况,让所有的技术人员在短短的一个月时间内成为UNIX下编程高手,难道不是一件很吸引人的事情。同时,对于新招大学生,基本都熟悉VB、Delphi、或者C+ Builder,而Object UNIX Class Library很象VB、Delphi编程,如果你会这些语言,在UNIX下编写C程序就象编写VB一样简单,同时,本类库所具有的控件的方法和属性基本上和Delphi的类似。3.3可视化开发OUCL应用程序值得庆贺的是,针对非Unix/Linux程序员,本系统提供了前台基于Windows环境下Delphi程序设计的界面处理,你完全可以在Delphi下设计出自己的工程及各个对话框的界面,然后通过通过Object Unix/Linux Class Library提供的trans工具或者IDE环境下的转换功能实现Delphi整个工程文件以及界面设计文件的自动转换并生成对应的基于OUCL的源代码及makefile文件。通过这样的方式,你可以快速地设计应用程序的主窗口、菜单、各个对话框以及对应的事件函数原型。Object Unix/Linux Class Library能够解释Delphi文件的dfm文件并解释、自动生成对应的C+源代码,达到快速开发的目的。从某种意义上说,Delphi就是Object Unix/Linux Class Library的前台开发程序。第四部分Object Unix/Linux Class Library界面显示效果4.1 窗口(1)主窗口(TWindow)Object UNIX Class Library定义的窗口是一个字符窗口,窗口的样式如上图所示。当然,你可以重载窗口函数,以便定制适合自己业务的新的窗口。 每个窗口都默认有一个基本的菜单系统,你可以通过菜单类继承他。菜单的第一个字母是菜单的热键。(2)菜单(TMenu)Object UNIX Class Library的菜单系统是内置的,所有的窗口都有一个菜单。菜单除采用传统的选择驱动、热键驱动方式,还可为每个菜单绑定一个交易号,通过交易码进行驱动。(3)运行窗口(TDialog)Object UNIX Class Library所运行的界面一般都在对话框内进行,所以实际运行中都是通过点击菜单中的选项,激活对话框的。4.2 对话框(1)文件对话框(TFileDialog)Object UNIX Class Library提供内置的目录文件选择对话框。本对话框可以定位文件所在的目录,并返回选定的文件名称。(2)消息对话框(T?Dialog,这个要讨论)Object UNIX Class Library提供的交互式应用程序基本上都是和对话框打交道,禀承Windows操作习惯,每个对话框都有退出按钮,执行对话框退出操作。(3)打印对话框(TPrintDialg)Object UNIX Class Library提供内置的打印驱动并支持终端打印。本对话框只要支持分页打印功能。该驱动可以打印重定向到文件。4.3 编程控件(1)输入框(TEDIT)Object UNIX Class Library提供内置的输入框。 本输入框支持定长、不定长、密码输入等功能,并支持相应的事件响应,用户可以定义自己的事件响应函数来满足业务功能。(2)下拉列表框(TComboBox)Object UNIX Class Library提供内置的下拉列表框。 本下拉列表框支持输入、选择等功能,并支持相应的事件响应,用户可以定义自己的事件响应函数来满足业务功能。比如下图所示输入开户银行代码,然后把代码转换成开户行进行显示。(3)列表框(TList)Object UNIX Class Library提供内置的列表框。 本列表框支持相应的事件响应,用户可以定义自己的事件响应函数来满足业务功能。(4)多行编辑框(TMultiEdit)Object UNIX Class Library提供内置的多行编辑框。 本多行编辑框支持虚拟不定长的编辑功能,类似Windows的记事本或者DOS下的Edit,提供块操作,行操作等功能。(5)分组框(TGroup)Object UNIX Class Library提供内置的分组框。 本分组框作为一种类型或者一项业务的集中,提供给用户一种分类的选择,象下图的纸张类型分组框、打印格式分组框、设备类型分组框等,特别是对了单选互锁按钮来说,同组的选择是唯一的。(6)校验框(TCheckBox)Object UNIX Class Library提供内置的校验框。 本校验框是个复选框,用户可以选择是或者不是,用空格选择,是就打勾,不是则取消并支持事件响应消息,您可以定义自己的事件来触发选择。(7)单选互锁框(TRadioButton)Object UNIX Class Library提供内置的单选互锁框。 本校验框是个复选框,一般和分组框配合使用,用户可以选择是或者不是,用空格选择并支持事件响应消息,您可以定义自己的事件来触发选择。(8)文本框(TLabel)Object UNIX Class Library提供内置的文本框。 文本框作为一种提示框,置放在输入框等项目前面,指示用户后面输入框的内容,它是一种文字描述。象下图的统一代码等文字一样。(9)多行文本浏览框(TView)Object UNIX Class Library提供内置的多行文本浏览框。本多行文本浏览持虚拟不定长的文本文件浏览功能,类似Windows的记事本或者DOS下的Edit,但是,只是不能进行编辑操作。(10)数据浏览框(TBrowser)Object UNIX Class Library提供内置的数据浏览框。 数据浏览框是一种多行多列的列表框,象Windows下Dlephi的网格StringGrid功能,支持复选功能,按空格选择。(11)画线框(TLine)Object UNIX Class Library提供内置的画线框。 画线框是个分隔线,有横线和竖线两种,象下图的三个区两条线,分隔出公共信息区、企业类存款人信息区、按钮区等。(12)按钮(TButton)Object UNIX Class Library提供内置的按钮。 按钮就是一种动作,通过这个动作来完成某种功能或者事件。本平台提供按钮事件函数或者用户自己定义按钮响应事件,其中,OK_BUTTON和EXIT_BUTTON两种类型的按钮可以退出本对话框。象下图的审批、报审、取消、退出按钮。(13)进度条(TScroller)Object UNIX Class Library提供内置的进度条显示。 进度条显示是一种过程显示,可以描述某种动作执行的进程。第五部分 Object UNIX Class Library与同类产品的比较据了解,目前国内基本没有在UNIX字符环境下的开发工具,而且,就算有,基本上也是一些自己的函数库而已,没有形成系列或者产品,更没有对其封装并行成一个产品。而Object UNIX Class Library可以是一个产品,其技术文档齐全(SCO UNIX环境下面向对象的程序设计)并且在实际项目开发过程中展示其高效、快速、稳定、美观的功能并受到客户的好评。2000年本产品由于一些业务原因,本可以作为人总行的一个开发平台在人总行20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论