使用访问者模式解决action逻辑一致而返回视图不同