1.4.1 设计ADT(2)

2014-03-11 13:02:03 · 作者: · 浏览: 106

1.4.1  设计ADT(2)

可以使用ADT操作去设计与约会有关的其他操作。例如,假定想要修改已有的预约簿apptBook中某个特定约会的日期或时间。下面的伪代码说明如何使用前面的ADT操作完成这一任务:
 

  1. // Change the date or time of an appointment.  
  2. Get the following data from the user: oldDate, oldTime, newDate, newTime  
  3. // Get purpose of appointment.  
  4. oldPurpose = apptBook.getAppointmentPurpose(oldDate, oldTime)  
  5. if (oldPurpose is not the empty string)  
  6. {  
  7. // See whether a new date/time is available.  
  8. if (apptBook.isAppointment(newDate, newTime))  
  9. // New date/time is booked  
  10. write("You already have an appointment at ", newTime,  
  11. " on ", newDate)  
  12. else  
  13. {  
  14. // New date/time is available; cancel old appointment; make new one.  
  15. apptBook.cancelAppointment(oldDate, oldTime)  
  16. if (apptBook.makeAppointment(newDate, newTime, oldPurpose))  
  17. write("Your appointment has been rescheduled to ",  
  18. newTime, " on ", newDate)  
  19. }  
  20. }  
  21. else  
  22. write("You do not have an appointment at ", oldTime,  
  23. " on ", oldDate)  

再次强调,可以设计使用ADT操作的应用程序而不需要关心ADT的实现。本章末尾的练习题提供了其他示例任务,这些任务可以用ADT来完成。

注释:可以使用ADT而不需要知道其实现