chap06面向对象设计原则概要1.ppt

chap06面向对象设计原则概要1

用例分析:“加热”用例-2 “加热”步骤4:加热结束 加热结束后,指示灯应当点亮,停止供应热水。加热结束的消息也应该让ContainmentVessel知道,因为当用户再次将空咖啡壶放到保温托盘上,它必须负责通知UI熄灭指示灯,表明无咖啡可供饮用。 HotWaterSource和ContainmentVessel都有责任通知其他对象加热结束。因为加热结束既有可能是因为烧水壶空了,也有可能是因为咖啡壶满了。 用例分析:“加热”用例-2 异常路径: 加热中拿走咖啡壶 在加热过程中,用户突然把咖啡壶从加热托盘上拿开。则ContainmentVessel应当立刻通知HotWaterSource停止继续供应热水(想象在冲咖啡的时候,突然有人把下面的杯子拿开,则你应当立刻停止倾倒热水) 用例分析:更多用例…… “保温”用例中的备选路径:咖啡耗尽 用户将咖啡壶中的咖啡倒光,然后将空咖啡壶放到保温托盘上,咖啡机应当将指示灯关闭,表示没有咖啡可供饮用 由通信图产生类图 这是一个非常理想的结构:责任被合理分配,各对象 之间的消息平衡,没有泡泡类,协作图与类图相匹配 问题是:该程序能够运行在MarkIV型的咖啡机上吗? 我们得到的是“咖啡机” 所有这三个类与“Mark IV咖啡机”这一特殊产品没有任何直接关系 这正是我们所期望的——我们得到了真正的抽象,把握住了问题的本质 下面要做的,是根据这个抽

文档评论(0)

1亿VIP精品文档

相关文档