package com.github.code4craft.helloworld.behavioral.visitor; import com.github.code4craft.helloworld.HelloWorld; /** * @author yihua.huang@dianping.com */ public class HelloWorldCharacterVisitor implements HelloWorldVisitor, HelloWorld { private StringBuffer accum; public HelloWorldCharacterVisitor(){ this.accum = new StringBuffer(); } @Override public void visit(HelloWorldElement helloWorldElement) { if (helloWorldElement instanceof HelloWorldCharacterElement){ HelloWorldCharacterElement helloWorldCharacterElement = (HelloWorldCharacterElement) helloWorldElement; accum.append(helloWorldCharacterElement.getCh()); } } @Override public String helloWorld() { return accum.toString(); } }