访问者更改其操作对象的状态可以接受吗?这种操作不被视为反模式?
修改访问的对象是完全可以的。
只要确保访问者类的名称正确,那么它显然会产生副作用。
只要访问者只使用公共接口,并且没有任何接口方法允许访问者将对象置于无效状态。访问者可以自由更改访问对象的状态。
正如其他答案所提到的,在对象访问期间更改对象没有反模式;但是,与所有可变状态一样,在多线程场景中必须小心。确保没有其他线程与访问者同时更改对象,或者确保正确的同步。