1.4.1 设计ADT(2)
可以使用ADT操作去设计与约会有关的其他操作。例如,假定想要修改已有的预约簿apptBook中某个特定约会的日期或时间。下面的伪代码说明如何使用前面的ADT操作完成这一任务:
- // Change the date or time of an appointment.
- Get the following data from the user: oldDate, oldTime, newDate, newTime
- // Get purpose of appointment.
- oldPurpose = apptBook.getAppointmentPurpose(oldDate, oldTime)
- if (oldPurpose is not the empty string)
- {
- // See whether a new date/time is available.
- if (apptBook.isAppointment(newDate, newTime))
- // New date/time is booked
- write("You already have an appointment at ", newTime,
- " on ", newDate)
- else
- {
- // New date/time is available; cancel old appointment; make new one.
- apptBook.cancelAppointment(oldDate, oldTime)
- if (apptBook.makeAppointment(newDate, newTime, oldPurpose))
- write("Your appointment has been rescheduled to ",
- newTime, " on ", newDate)
- }
- }
- else
- write("You do not have an appointment at ", oldTime,
- " on ", oldDate)
再次强调,可以设计使用ADT操作的应用程序而不需要关心ADT的实现。本章末尾的练习题提供了其他示例任务,这些任务可以用ADT来完成。
注释:可以使用ADT而不需要知道其实现