实验项目名称:行为型软件设计模式
一、实验目的和要求
目的:对行为型设计模式中的访问者模式、中介者模式、策略模式和状态模式的机制与实现方法进行验证。
要求:在学习行为型设计模式原理的基础上,熟悉JAVA编程环境,熟练掌握访问者模式、中介者模式、策略模式和状态模式的应用场景,并能够对代码进行修改和完善。
二、实验环境
1、PC兼容机
2、Windows10系统
三、实验操作过程及实验结果记录
(一)访问者模式
作业要求:研究下图1,图2和图3关于计算机的访客者模式的解决方案,阅读有关问题实现的源代码。然后
1)先运行程序以熟悉程序
2)在下面的设计图中,添加一个名为SoundBox的类,它也被视为计算机的一部分。为 SoundBox 类编写代码。
3)修改所有相关类,包括客户端类ComputerPartsGU,Visitor类层次结构以添加必要的方法,通过添加功能可以在屏幕上显示价格和零件信息。
图1 计算机部件的访问者模式设计类图
图2 计算机部件的访问者类的层次图
1、 回答以下问题
a) 您在设计图中添加了什么类?
添加了SoundBox类。
b) 修改了哪些类?
修改了ComputerPartsGUI类、PriceVisitor类、PartsInfoVisitor类和Visitor接口。
c) 正确绘制新类图
2、执行以下操作
a) 解释方法 accept(Visitor v) 的工作原理。
accept方法被一个对象调用,然后通过变量v去调用visitSoundBox方法,并将当前对象作为visitSoundBox方法的实参。
b) 节点类是如何被访问的?
提供接受访问方法的具体实现,而这个具