增加访问者和观察者模式