访问者模式:更改对象状态



访问者更改其操作对象的状态可以接受吗?这种操作不被视为反模式?

修改访问的对象是完全可以的。

只要确保访问者类的名称正确,那么它显然会产生副作用。

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

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

最新更新