实验项目名称:MVC体系结构
一、实验目的和要求
目的:对MVC体系结构的机制与实现方法进行验证。
要求:在MVC风格软件体系结构原理的基础上,熟练掌握MVC风格软件体系结构的应用场景,并能够对代码进行修改和完善。
二、实验环境
1、PC兼容机
2、Windows10系统
三、实验操作过程及实验结果记录
- 作业描述:考虑一个拍卖二手车的软件。该软件需要一个用户输入界面,同时还需要显示车的图片,和车的介绍,以及当前的竟拍价格的显示。用户首先从一个列表中挑选要买的车,按Search按纽,得到车的图片与文字介绍,用户输入竞拍价格,另外一个窗口将显示当前的竟拍价格。本系统还应该可以很容易地增添新的数据显示方法。带有灵活的人-机接口的互动的应用。要求相同的信息可以有不同的显示,例如图片,文字介绍等如图所示。
二手车拍卖系统的采用MVC模式(使用观察者机制)的设计与实现,用户输入界面和显示视图都在同一个窗口中显示的情况。本节对二手车拍卖系统的采用MVC模式(使用观察者机制)的设计。在设计中,将用户输入界面和所有的显示视图都放在同一个图形界面中。设计类图如下。
图1 设计的类图
作业要求:
在软件包“MVC-Observer-CarInfo-1GUI”中运行CarAuctionGUI程序,您将看到3个图形用户界面,如下所示
-
在CarModel类中,添加一个名为 validateAuctionPrice(String car) 的方法来检查一个人的拍卖价格是否合法。合法拍卖价格是高于最后给出的价格。例如,如果本田雅阁-2005 的最新拍卖价格是 6500,而现在客户出价 6400,那么这个报价是非法的。如果现在,有人提供 6501,那么这个提议是合法的。
-
要实现上述功能,需要在 CarModel.java 类中将声明“private String bitPrice”更改为 2 条语句:
private double[ ] currentBitPrices中
currentBitPrices[0] 记录本田雅阁的当前比特价格
currentBitPrices[1] 记录本田思域的当前比特价格
currentBitPrices[2] 记录丰田凯美瑞的当前比特价格
currentBitPrices[3] 记录丰田卡罗拉当前的比特价格
private double[ ] preBitPrices中
preBitPrices [0] 记录本田雅阁之前的比特价格
preBitPrices [1] 记录本田思域之前的比特价格
preBitPrices [2] 记录丰田凯美瑞之前的比特价格
preBitPrices [3] 记录丰田卡罗拉之前的比特价格 -
validateAuctionPrice(String car) 应在Controller类中被调用,如果提供的比特价格不合法,则向CarBitInfoView输出错误消息,即“illegal bit price”。
1.描述你完成的作业,包括
1) 在现有的类层次结构中的什么类中添加了什么方法?
在CarModel类中添加了validateAuctionPrice(String car)方法。
2)什么代码被添加到什么类?
在CarModel中添加的代码如下:
- 在此处绘制新的类图,包括新添加的方法。
3.当用户选择Honda Civic-2006时,单击搜索按钮,然后填写位价格,然后单击位按钮,在您的程序中调用了哪些方法?按正确的顺序列出它们。
createAndShowGUI()->setBitPrice()->setBitBtnClickInfo()
- 运行程序的典型输入和输出
四、实验结论