面向对象软件开发教程02.doc_第1页
面向对象软件开发教程02.doc_第2页
面向对象软件开发教程02.doc_第3页
面向对象软件开发教程02.doc_第4页
全文预览已结束

下载本文档

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

文档简介

9 面向对象:一种新的软件范型 面向对象是标准,而非特例。对象技术正成为主流。 第2章面向对象:一种新的软件范型你将在本章学到什么?l 面向对象潜在的优点l 面向对象潜在的缺点l 对象技术为什么会成为主流技术l 现有的对象标准l 面向对象软件过程为什么需要阅读本章?要理解面向对象范型,需要理解它的强项和弱项,以及对象标准和软件过程,还要理解它们是适用于面向对象技术开发的。尽管面向对象早在20世纪60年代后期就已经提出,但是之后的大部分时间它却停留于实验室内,直到20世纪80年代中后期,一些团体和系统工程界才注意到像Smalltalk和C+这样的语言。自那以后出现了许多由于应用对象技术而成功的案例,但也不乏失败者。为了正确应用面向对象技术,读者必须要理解书中讲述的面向对象技术潜在的优缺点以及面向对象软件过程的一些基础知识。2.1 面向对象潜在的优点面向对象提供了一种潜力,应用它你就可以解决目前IT界面临的许多问题。面向对象在20世纪80年代后期开始在一些团体内部流行,到了20世纪90年代中期,它已然变成了事实上的开发标准,自此之后应用越来越多。面向对象有许多潜在的优点:l 增加可复用性l 增加可扩展性l 改进质量l 财务利益l 增加项目成功机会l 减少维护负荷l 减少应用积压(application backlog)l 可管理的复杂性2.1.1 增加可复用性面向对象范型引入继承、多态、封装、模块化、耦合以及内聚等概念,从而为复用提供了可能性。这里我们将不再讨论这些概念,在第5章中你将会看到,它们是完成更好的设计最为直接的概念。尽管使用面向对象并不能保证你就一定能开发出可复用的软件,或者说你自己复用软件,但它确实提供了比结构化范型更多的可复用的机会。面向对象提供了更多增加复用性的机会。2.1.2 增加可扩展性因为类既包含数据又包含功能,当你增加新的特征时,仅仅需要在一个地方做改动:可应用的类。这和结构化方法是完全不同的,在结构化方法中,某处业务规则的改变可能会影响到许多程序。比方说,假如你有四个能访问大学数据库内学生数据表的结构化程序,结果你在数据表中增加“监护人姓名”字段时,需要修改这四个结构化程序以期支持这种变化,以使它们能够处理新的数据。现在假如你完全使用对象技术开发了同一系统,你不必编写四个不同的应用程序,而只需编写一个名为“Student”的类,这个类处理封装了(包含)学生适当数据和功能的数据。当增加“监护人姓名”字段时,仅需修改这个定义和“Student”类的源码实现,所有的修改只会发生在一个地方而不是四个地方。显然,这样做更容易一些。面向对象既封装功能,又封装数据,这使得维护软件更加容易。第二个例子是,你可能会要修改已有的系统来跟踪记录大学内的管理人员。大学管理人员除了不用授课之外,他/她就像教授一样,必须自己来制订进度。在结构化应用程序中,你可能需要为管理人员增加一个新的数据表和程序模块来处理管理功能。那将需要很大的工作量。在面向对象系统中,只要定义“Administrator”类,这个类继承“Professor”类。当然了,你仍要为制订课程进度编写代码,但并不必再考虑那些已经为“Professor”类定义好的数据和功能。继承使你可以复用已有行为,这使得完善软件变得更加容易。前面这些例子表明扩展面向对象程序将会非常容易。首先,已经存在的类非常容易修改,因为数据和功能位于同一个地方。其次,通过使用继承,新的类创建时可以利用已有类业已实现的行为。总没有必要再重新发明轮子吧!面向对象提供了更多的机会增加可扩展性。2.1.3 改进质量高质量的系统是应该在规定时间和预算内完成,并且能够达到或超过用户期望的系统。在系统开发过程中,用户更多地参与可以增进系统开发的质量。在本书中你将会看到,面向对象系统开发技术给用户提供了更多参与开发过程的机会(例如,第3章给出了CRC建模、用况建模以及定义大量需求的技术)。面向对象技术提供了更多的获取更好的软件质量的机会。定 义继承(inheritance):表示两个类之间是“is a”、“is like”或“is kind of”的关系。继承提高了复用性,它可以使子类自动利用其从父类继承的所有行为。2.1.4 财务利益可复用性、可扩展性以及改进质量带来的不仅是技术上的利益。更重要的还有业务利益。从用户(记住他们,他们是付给我们钞票的人)的观点来看,真正的利益在于我们构建的系统更好、更快、更经济(BFCbetter,faster,cheaper)。面向对象使你可以更好、更快、更经济地(BFC)构建系统。虽然大部分面向对象的书籍把重点放在技术带来的优势上,但真正重要的却是像BFC这样的业务利益。BFC带来的好处不仅适合项目开发,而且也适合生产产品。复用率高的系统比复用率低的系统更容易维护(这里面的原因就在于它并不需要重新书写公用代码,同样的代码可以被多次反复使用)。代码越多,维护它要耗费的气力就越大。并且我们知道,容易扩展的系统同样也容易维护。最后一点,符合用户需求的系统会省去很多麻烦,而那些达不到要求的系统需要更多的改进和维护支持。认识到面向对象带来的好处遍及整个开发生命周期,这显然非常重要。我们在分析、设计和编程整个过程中都用到了继承特性。这意味着我们可以复用我们的分析、设计以及代码。为了增加新的功能或修改系统中已有的功能,我们必须首先更新分析以及设计,然后才修改程序代码。那样我们的模型和代码都可以扩展。有效地改进系统质量的一种不可或缺的方法就是,让用户自始至终都参与

温馨提示

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

评论

0/150

提交评论