| 网站首页 | 测试咨讯 | 新手入门 | 专注性能 | 测试技术 | 测试管理 | 测试工具 | 开发社区 | 工具下载 | 资料下载 | 测试论坛 | 

[CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523

新手入门
 入门指南
 经验之谈
测试咨讯
 行业新闻
 网站动态
 人才就业
 CNTester基金
 标准规范
专注性能
 性能测试知识
 性能测试工具
 程序设计性能
 数据库性能
 Web应用服务器性能
 操作系统性能
 服务器与网络性能
测试技术
 用例设计
 性能测试
 自动化测试
 Web测试
 面向对象测试
 综合技术
 阶段性测试
 行业类测试
测试管理
 项目管理
 项目案例
 质量管理
 软件过程
测试工具
 Mercury系列
 Rational系列
 测试管理工具
 性能测试工具
 功能测试工具
 单元测试工具
 其它测试工具
开发社区
 Java技术
 DotNet技术
 C技术
 数据库技术
 操作系统
 服务器与中间件
工具下载
 测试工具
 开发工具
 企业工程
 网络通信
 媒体桌面
 游戏娱乐
 其他工具
资料下载
 测试资料
 程序设计
 数据库
 操作系统
 应用服务器
 电子期刊
 其他资料
 
 
您现在的位置: 中国测试员网站 >> 开发社区 >> Java技术 >> 文章正文
  [推荐]面向对象设计与编程核心技术       ★★★ 【字体:
面向对象设计与编程核心技术
基于UML、原则、模式与重构的论述
作者:梁建增    文章来源:本站原创    点击数:    更新时间:2007-6-12    

第一章  引 言

 

 

     面向对象是一种软件分析、设计和编码等软件开发过程中所运用的思想,这种思想的重要性却往往被人们所忽略,当然至少是被大多数本专科学生所忽略。这不是什么好高务远等浮躁的行为,我们必须承认现实并且去面对这现实,中国计算机界特别是软件教育的人才培养总是跟不上市场的需求,这是国民生计乃至国家防御的大问题。每个人都应该有社会责任感,都应该承担起自己的责任和义务,人一辈子不求什么,但求临终追问一生所为而不至于问心有愧。当然,我们目前需要的是,做好自己的职责。而我,正在尽力的去做。

     早先我曾经参与了一家教育类的创业公司,并且负责该公司IT方面的问题。当我看到以及参与一些包括IT与非IT项目的策划时,我从其中认识到了一些非常严重的问题。最严重的莫过于“人各有志”,一个人的人生观以及世界观决定了这个人的所为和所做。或许有些人不希望在技术上费劲而想其他办法多挣钱,那是人各有志吧。目前所在的软件公司中,参与的项目也让我感觉到需要去多学习什么技术。所以我想,对这篇技术论文,懂得欣赏的我说声谢谢你的理解,不能体会的我也于心谢谢你的谅解。

     准备好了没有?你的回答只有肯定。

 

 

 

 

 

 

第二章  面向对象开发语言与开发工具

 

 

2.1面向对象语言

    

语言,我们还要争吵下去吗?尺有所长,寸有所短。面向对象语言,在他眼睛里,所有程序即将要进行描述的事物都是对象。他的特点是以对象作为基本程序结构单位,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承、多态、封装等成分和概念。JAVA语言就是面向对象语言中最具代表性之一的,他提供了比较纯的面向对象概念和机制。

 

 

2.1.1 Java语言

 

Java技术是一种面向对象的编程语言,由SUN微系统公司(http://www.sun.com)所开发的编程平台。Java语言的创始人是James Gosling ,他是一个大胡子,程序界但凡厉害的人物大多似乎都是大胡子。

Java 技术的最大卖点就是他的平台无关性,他仅仅要对Java 虚拟机(JVM)负责。JVM 是编程语言与机器底层软件和硬件之间的翻译器,而通过针对JVM的编程,就可以让Java程序在任何具有JVM的平台上运行。而JVM不仅仅是SUN的杰作,包括BEAIBMORACLE等都有自己的JVM,并且Java程序也出现了不同的解释或则编译方式。

Java 编程语言是与众不同的,因为 Java 程序需要经过编译为中间语言,然后解释通过 JVM 分析和运行字节码。编译只进行一次,生成.class的后缀名文件,解释则在每次运行.class文件时都要进行。

Java 平台(1.4)具有三个版本:J2SEJ2MEJ2EE,该平台由 JVM Java Application Programming Interface (API) 组成,Java API 是现成软件组件的集合,便于进行 applet 和应用程序的开发和部署,其中包括健壮的、安全的和可互操作的企业应用程序。Java API 被分组到相关类和接口的库中;这些库称为包。而程序员们也可以开发自己的API,组建自己的库,通过这些方式,我们可以重复利用优良的代码。

 

 

2.2开发工具

 

当我们开始设计和编写程序之前,我们需要劳动的工具,一把好的锤子可让你少敲几下,甚至避免把你的拇指错当成钉子。在面向对象的设计和编程中,你不可或缺的需要工具的支持,用来自动寻找错误、重构代码、判断依赖,甚至自动生成转换代码与模型等等。目前的工具有很多,针对语言,针对平台等等的都有,但我只打算简单介绍下面的工具。

 

 

2.2.1神奇而卓越的集成开发环境Eclipse

 

工欲成其事,必先利其器!Eclipse,不容错过的神兵利器!(http://www.eclipse.org

     Eclipse是由IBM领导的开源项目,参与这个社区的厂商与个人不计其数,除了微软外,你知道的不知道的大公司和大人物都在这里头找到了自己想要的东西。Eclipse 提供了一个允许快速原型、协作并分享看法的构建于通用架构之上的平台。同时又可以访问功能强大的可扩展平台,从而使得快速有效地开发高质量的工具变得十分容易。如果整个平台太重量级以至于难以使用,Eclipse 提供了 Rich Client Platform (RCP,富客户端平台),它用于不需要通用资源模型或平台其他功能的应用程序。曾经听说过微软有个类似于RCP的技术,他们都是基于XML的一项技术,这两种互不相容但有者共同机理和目的的技术将引导我们往后的技术发展,一种超前但已经距离不远的概念。通过他们,我们的所有应用程序和资源都类似一个浏览器IE一般。

Eclipse Project  

Equinox   (home)

JDT - Java Development Tools   (home)

PDE - Plugin Development Environment   (home)

Platform   (home)

Tools Project    

C/C++ IDE   (home)

COBOL   (home)

EMF   (home)

GEF - Graphical Editor Framework   (home)

Hyades [closed]   (home)

PHP Integrated Development Environment   (home)

UML2   (home)

VE - Visual Editor   (home)

Eclipse Web Tools Platform Project  

J2EE Standard Tools   (home)

WST - Web Standards Tools   (home)

 

     上面是Eclipse的一些平台环境和插件项目,使用这些插件你可以自由的构建你所需要的开发平台。如通常我们的使用eclipse-SDK-3.1后,为了能够可视化的开发JAVA窗口应用程序以及UML的软件设计,可以再添加VE-SDK-1.1JEM-SDK-1.1GEF-ALL-3.1emf-sdo-xsd-SDK-2.1.0uml2-SDK-1.1.0eclipseUML_E310_freeEdition_2.1.0(这个有商业版和Free版)。类似,我们开发任何一种特定技术或领域的程序时,都需要相关的包或则插件,我们可以自由的搭配采用。但要记住一点,Eclipse项目的更新是芸斓模渌喙夭寮南钅扛禄岣莸鼻捌教ǖ陌姹纠唇校煌钅考浠嵊幸览倒叵怠K裕乇鹱⒁獠煌掌诎姹镜亩杂Γ约安寮浯嬖诘囊览倒叵担裨蚧岬贾?/SPAN>IDE出现错误甚至无法运行。

 

 

  

 

 

第三章  面向对象的架构设计

 

3.1 UML统一建模语言概要

 

     统一建模语言(Unified Modeling LanguageUML)是OMG组织(Object Management Group对象管理组织 http://www.omg.org)负责维护和管理的一个模型语言。UML的主要创始人是Jim RumbaughIvar JacobsonGrady Booch,他们都有自己的建模方法(OMTOOSEBooch),由于不同模型间的理解和交互存在问题,所以他们一起创建了UML用来统一的实现建模语言。当然,UML不只用户于对象设计,他在过程语言上也有很大的用途。LINUX上百万行的内核原代码早已经被一个组织机构反编译为UML图,这样对整体代码的分析和维护变得不再那么复杂。

      UML包括了结构图、行为图和交互图三大类。其中各类中又包含数种图:

3-1   UML的分类

 

 

 

3.2基于UML的软件设计与建模重要性

 

2006年上半年的全国计算机技术与软件专业技术资格(水平)考试中,软件设计师的试题出得让我感觉到世界原来转得比我想象中还快,但让我觉得郁闷的同时,我想也让大多数学生身份的人感觉到有苦说不出。上午理论基础,试题对于UML知识有了大范围增加,比去年多了两倍左右,我想对于很多大学生而言,他们目前还在学校的课堂研究程序流图,那是过程语言的范畴,而不是面向对象设计的领域。不出我所料,到了下午应用技术,UML不仅单独做为一个题形,还对程序设计的C++JAVA题进行了整体结构的描述。一张图,对一个简单产品销售库存系统以及客户管理维护系统有了非常直观的概括,并且可以很清晰的从其中认识到程序类和方法中的各种依赖观系。通过观察UML,就可以在短时间了解这个程序,假如你一开始就去看代码,那么需要的时间就很可观了。

软件考试可以说是我国软件业对人才培养和资格认证的最专业考试,这类考试通常反应了目前的市场对人才技术的需求。可以看得出,UML是一个必然的趋势。有必要提到一点,就是下午的Java程序设计题目,所采用的居然是最新的JDK5.0,而目前据我所知道,整个广西软件界,基于JAVA的开发,没有一个上是JDK5.0版本的,其中增添的一些新特性如泛型等,以及语法的部分不同,让我感觉到焦虑,这不得不让我深思我们还停留在什么地方,而我们周边的环境已经发展到什么地步了。

 

 

 

3.2.1一个简单的ATM系统类图告诉了我们什么

 

从下面这个简单的ATM自动取款机系统的类图中,我们就可以一览此系统内部程序类是如何交替工作传递消息的。当然这只是一个静态图,他只能告诉我们类之间的依赖联系,而活动状态下类之间的工作机理,还需要我们采用动态图来表示,如序列图、活动图等。我们看看,UI类做了什么呢?他引用了Screen以及MessageLog类,其中Screen类是对屏幕显示功能内聚的类,MessageLog类是对日志进行处理的类,这两个类就好比两个零件,都遵守了单一职责原则,可以不只为UI所用。大家也可以看出,所有接口都没有依赖于具体类,而是所有具体类依赖于接口,这也属于依赖倒置原则。语言处理的这两个类通过继承这个UI类,又很轻易的实现了英语和西班牙语的UI显示和日志记录, 我们只需要新添加一个处理中文的类ChineseUI,通过继承UI我们就可以继承原先的UI处理机制,ChineseUI类只需要添加相关中文的处理即可,如图中绿色的类所显示。一个优良的系统程序结构,通过查看一个直观的UML

[1] [2] [3] [4] [5] [6] [7] 下一页

文章录入:root    责任编辑:root 
  • 上一个文章:

  • 下一个文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    最新热点 最新推荐 相关文章
    · 面向对象设计与编程核心技术
    · Tomcat系统安全管理与权限管理
    · 雅虎公司C#笔试题
    · 利用Java事件处理机制实现录制、回放功能
    · apache+tomcat+mysql负载均衡和集群
    · Linux 指令大全
    · 应用服务器内存泄露问题诊断一例
    · 追求代码质量: 软件架构的代码质量
    · 对话 UNIX
    · 关于一些算法问题与朋友的讨论
    · 对话 UNIX
    · nmon 性能:分析 AIX 和 Linux 性能的免费
    · 追求代码质量: 谨防紧密耦合!
    · 应用服务器内存泄露问题诊断一例
    · Linux 指令大全
    · C 编程最佳实践
    · LPI 证书 101 考试准备,第2部分 [正则表
    · LPI 证书 101 考试准备,第1 部分 [使用L
    · Linux 究竟是什么?
    · 利用Java事件处理机制实现录制、回放功能
    设计心得——用 XDoclet 减少
    数据库正规化和设计技巧(1)
    数据库正规化和设计技巧(2)
    数据库正规化和设计技巧(3)
    浅谈数据库设计技巧(上)
    浅谈数据库设计技巧(下)
     
     
     
    ======> [CNTester联盟群]交流群:34446273/21968356/64461572 白盒群:18400216 自动化群:2706508 性能群:4498858 外包群:59649884 管理群(需有管理经验):64442523
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | 

    Copyright@2007 by CNTester.com 中国测试员网站 桂ICP备07005590

    本站为开源免费网站,非商业赢利性组织。本站文章部分从网络搜索获取,如果您认为某些侵犯了您的权益,麻烦您联系本站,我们会尽快删除相关内容,同时也希望您的谅解,我们的初衷是为了让更多人去学习这方面的知识,让行业有更好的发展。

    联系电话: 15021358905