将访问者设计模式应用于您的代码与以下方法之间有什么区别:
interface Dointerface {
public void perform(Object o);
}
public class T {
private Dointerface d;
private String s;
public String getS() {
return s;
}
public T(String s) {
this.s = s;
}
public void setInterface(Dointerface d) {
this.d = d;
}
public void perform() {
d.perform(this);
}
public static void main(String[] args) {
T t = new T("Geonline");
t.setInterface(new Dointerface() {
public void perform(Object o) {
T a = (T)o;
System.out.println(a.getS());
}
});
t.perform();
}
}
我假设通过使用接口,我们并没有真正分离算法。
两件事情:
perfom
和setInterface
。使用访客模式,您只需要一种方法perfom
,通常称为accept
。setInterface
方法为每个表演者设置表演者。这样就不可能使您的类不可变。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句