gpt4 book ai didi

java - 访问者模式中元素的访问级别

转载 作者:行者123 更新时间:2023-12-02 08:48:49 24 4
gpt4 key购买 nike

visitor pattern ,我希望客户端只能访问元素的 getter,而访问者应该有权访问 getter 和 setter。你会如何实现它?

我不希望访问者与模型位于同一个包中(已经有很多类)。我正在考虑引入 IWriteable 接口(interface),其中包含 setter 和接受方法。有更好的办法吗?

enter image description here

谢谢

最佳答案

@Angel O'Sphere:

该包将包含大约 2 倍的模型、访问者和工厂(接口(interface)和实现)。我也对流氓程序员有一些想法,这就是我问的原因。另一种方法是:

public class ModelImpl implement IRead {
@Override
public Foo getFoo() {...}

private void setFoo(Foo f) {...}

public void accept(Visitor v) {
v.visit(new ModelEditor());
}

private class ModelEditor implement IWrite {
@Override
public void setFoo(Foo f) {
ModelImpl.this.setFoo(f);
}
}
}

但是这种方法有很多缺点,并且如果没有生成技术就很麻烦:o

关于java - 访问者模式中元素的访问级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com