ClientVisitorvisitElementA()visitElementB()ConcreteVisitorvisitElementA()visitElementB()Elementaccept()ConcreteElementAaccept()ConcreteElementBaccept()