问题描述:有品牌汽车的风挡玻璃雨刷(Wiper)是由带刻度盘(Dial)的控制杆(Lever)控制的。这种控制杆有四个位置:停止、间歇、低速和高速,刻度盘有三个位置,分别是数字1、2和3。刻度盘位置指示三种间歇速度,刻度盘的位置只有当控制杆在间歇位置时才有意义。以下表格给出了挡风玻璃雨刷对应控制杆和刻度盘的工作速度(每分钟摇摆次数):
控制杆 | 停止 | 间歇 | 间歇 | 间歇 | 低速 | 高速 |
刻度盘 | —— | 1 | 2 | 3 | —— | —— |
雨刷 | 0 | 4 | 6 | 12 | 30 | 60 |
注意:控制杆和刻度盘在调节的时候,只能按照顺序调节,例如控制杆只能从停止--间歇--低速--高速--低速--间歇--停止,同样,刻度盘的调节过程也必须是1--2--3--2--1。
采用面向对象技术设计该程序,实现对雨刷速度的控制,另外,定义一个菜单函数(menu),实现对控制杆和刻度盘的调节,系统显示如下:
附:
(1)分别使用一个类、两个类、三个类、四个类(中介者模式)来实现上述问题
(3)思考:根据以上四种解决方案,若刻度盘的刻度由3档升级为5档,在每种方案中程序应该如何处理?