这里写自定义目录标题
一、实验目的:
- 掌握访问者模式(Visitor)的特点
- 分析具体问题,使用访问者模式进行设计。
二、实验环境:
eclipse
三、实验内容:
(写出主要的内容)
【实验内容和要求】
顾客在超市中将选择的商品,如苹果、图书等放在购物车中,然后到收银员处付款。在购物过程中,顾客需要对这些商品进行访问,以便确认这些商品的质量,之后收银员计算价格时也需要访问购物车内顾客所选择的商品。此时,购物车作为一个ObjectStructure(对象结构)用于存储各种类型的商品,而顾客和收银员作为访问这些商品的访问者,他们需要对商品进行检查和计价。不同类型的商品其访问形式也可能不同,如苹果需要过秤之后再计价,而图书不需要。使用访问者模式来设计该购物过程。
现使用访问者模式设计该购物过程。
用JAVA语言实现(C#控制台应用程序实现)该模式。绘制该模式的UML图。
【模式UML图】
【模式代码】
package visitor;
public class Apple implements Product {
@Override
public void accept(Visitor visitor) {
visitor.visit(this);
}
}
package visitor;
public class Book implements Product {
@Override
public void accept(Visitor visitor) {
visitor.visit(this);
}
}
package visitor;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class BuyBasket {
private ArrayList list = new ArrayList();
public void accept(Visitor visitor){
Iterator i = list.iterator();
while (i.