欢迎来到天天文库
浏览记录
ID:55811974
大小:4.12 MB
页数:62页
时间:2020-06-08
《信息系统分析与设计案例2010-9.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程案例一内容9编程简介实现类图编程序列图简介-1目的这部分的内容不是给你在编程方面的快速课程,而是为了演示我们已经建立的一些模型是如何映射到代码。我们不解释每条指令。代码的讨论涉及它同类图和序列图的关系。对于类图,我们讨论哪些行代码是实现类、类的属性、方法和关系的。我们利用序列图作为线路图来指导我们实现程序指令被执行的序列。其它的代码讨论局限于解释没有在早期模型中表示的定义特性。简介-2内容系统用Java语言实现。它也被我们已经在建立UML模型时使用的CASE工具支持。为了简洁,产生的代码仅仅是Wheels系统实现的部分:‘Issuebike
2、’用例的一个场景。代码局限于处理一位顾客租借一辆自行车。这意味着一些方法,例如Payment的方法calculateTotalPayment()似乎是无用的,因为它是设计用来处理多辆自行车租赁的。因为我们要求代码是为了表述的目的,因而简单代码比全部功能的代码更重要。简介-3方法诸如引用其它类的细节已经添加到类。因此,我们忽略了在分析模型中表示的一些属性和方法。这允许我们保持图表在可管理的大小内。从现在起我们称方法methods而不是操作operations;这在此阶段是合适的,因为程序员是关注实现一个过程的代码部分。在早期我们谈论操作而不是方法
3、,因为分析和设计活动更关注过程的界面,而不是它的实现。实现类图-1类图实现在图9.1中的实现类图最初是根据代码由CASE工具产生的。它表示了完整的实现细节,即属性、方法参数(带类型和返回值)、以及方法返还类型的可见性、类型和初始值。为了生成类图的目的,即忽略gets和sets方法,简单地设置或返回属性的值。例如,Customer有三个get方法,getCustomerNumber()、getName()和getPostcode(),它们都没有在类图中显示。实现类图-2起始类(StartUp)类StartUp是一个新类。Java应用必须总有一个m
4、ain()方法;当Java应用运行时,它总是第一个执行的方法。在包括main()的Java每个方法必须在一个类中;因此,我们建立StartUp类的原因部分是为了放置main()。StartUp建立的另一个原因是模拟,如果这部分代码是带有欢迎菜单和其它显示界面层的整个可执行系统的一部分时,它模拟将会发生什么。这个类有效地模拟了在图9.2中序列图建模的接待员的功能。四个方法调用,showBikeDetails()、calculateCost()、newCust()和calcTotals(),原来由Receptionist发送到:IssueBikeU
5、I,现在由StartUp发送。实现类图-3IssueBikeUI类这个类结合了控制类和界面类的功能。它的前四个属性chosenBike、customer、payment和hire都被用来存放IssueBikeUI需要交互的对象的对象标识符(或引用)。这些属性被用来实现在类图中表示的由IssueBikeUI发出的单向导航路径。最后的属性numberOfDays存放租借的时间长短。当calculateCost(numDays)被调用时它被设置,随后被用作Hire产生的参数。实现类图-4Payment类这是同分析模型中建立的Payment类相同的实体
6、类,仅仅是为了简单,省略了一些属性。属性:Customer用来存放对一个Customer对象的引用;这允许每一个Payment对象被联接到正确的Customer对象。它实现了在类图中表示的到Customer类的单向导航。paymentId被用来存放惟一标识每个:Payment的数字。这个数字是一个整数,不像一个引用(或对象标识符)仅被计算机使用,该数字能被人阅读和理解。实现类图-5Payment类(续)属性:(续)paymentCount是一个类变量,其允许应用赋值一个数字,该数字惟一标识每个:Payment(paymentId)。每次一个新的
7、Payment对象产生,它就被更新。Payment(cust:Customer)是一个构造器。当调用时,它产生一个新的Payment对象,并将其关联到:Customer引用,该引用被作为参数传递。calculateTotalPayment(hire:Hire)设计用于为一位租借多辆自行车的顾客计算出总的费用。因为在这个实现中,仅有一位顾客租借一辆自行车的情况,因此,本方法仅部分实现;calculateTotalPayment()调用私有方法issueReceipt()。issueReceipt(hire:Hire)打印一张收据。注意在类图中这个
8、方法前面是一个负号,表示其是一个私有方法。这意味着它仅能被Payment类的实例所使用。实现类图-6Bike类Bike类结合了Bike实体类,以及一个
此文档下载收益归作者所有