访客模式:改变对象状态?

时间:2015-12-30 23:45:55

标签: design-patterns visitor

访客是否可以更改其运营对象的状态? 这种操作不被视为反模式?

3 个答案:

答案 0 :(得分:4)

修改访问过的对象完全没问题。

只需确保您的访客类名称相应,因此很明显它有副作用。

答案 1 :(得分:2)

只要访问者只使用公共接口,并且没有任何接口方法允许访问者将对象置于无效状态。访问者可以自由更改被访问对象的状态。

答案 2 :(得分:1)

正如其他答案所提到的那样,在访问期间,对象的变异没有反模式;但与所有可变状态一样,必须注意多线程场景。确保没有其他线程与访问者同时改变对象,或者确保正确同步。