【发布时间】:2011-07-16 08:54:29
【问题描述】:
在visitor pattern 中,我希望客户端只能访问元素的getter,而访问者应该可以访问getter 和setter。你将如何实现它?
我不希望访问者与模型在同一个包中(已经有很多类)。 我正在考虑引入包含 setter 和 accept 方法的 IWriteable 接口。 有没有更好的办法?
谢谢
【问题讨论】:
-
您最初的想法:两个接口Client(只读)和Visitor(读/写)是规范的方式。
-
类的数量不是将它们放入包中的理由。问题是它在逻辑上属于哪里。我总是将遍历模型的访问者放入模型包中。然而 CPerkins 是对的,两个接口是最直接的方法,但不会让你免于来回转换的流氓程序员,例如
-
感谢 CPerkins 和 Angel 的回复。
标签: java design-patterns visitor-pattern