访客是否可以更改其运营对象的状态? 这种操作不被视为反模式?
答案 0 :(得分:4)
修改访问过的对象完全没问题。
只需确保您的访客类名称相应,因此很明显它有副作用。
答案 1 :(得分:2)
只要访问者只使用公共接口,并且没有任何接口方法允许访问者将对象置于无效状态。访问者可以自由更改被访问对象的状态。
答案 2 :(得分:1)
正如其他答案所提到的那样,在访问期间,对象的变异没有反模式;但与所有可变状态一样,必须注意多线程场景。确保没有其他线程与访问者同时改变对象,或者确保正确同步。