string {
return "需要羽毛球拍";
}
}
// 对象结构
class ObjectStructure {
private elems: IElement[] = new Array<IElement>();
accept(visitor: Visitor): void {
for (let elem of this.elems) {
elem.accept(visitor);
}
}
add(elem: IElement): void {
this.elems.push(elem);
}
remove(elem: IElement): void {
let idx: number = this.elems.indexOf(elem);
this.elems.splice(idx, 1);
}
}
let eleA: IElement = new ConcreteElementA();
let eleB: IElement = new ConcreteElementB();
let obs: ObjectStructure = new ObjectStructure();
obs.add(eleA);
obs.add(eleB);
let visitor: Visitor = new ConcreteVisitorA();
obs.accept(visitor);
visitor = new ConcreteVisitorB();
obs.remove(eleA);
obs.accept(visitor);
|