diff --git a/src/test/java/top/fjy8018/designpattern/pattern/behavior/visitor/spring/DrawServiceTest.java b/src/test/java/top/fjy8018/designpattern/pattern/behavior/visitor/spring/DrawServiceTest.java index c538b01..1b6acc3 100644 --- a/src/test/java/top/fjy8018/designpattern/pattern/behavior/visitor/spring/DrawServiceTest.java +++ b/src/test/java/top/fjy8018/designpattern/pattern/behavior/visitor/spring/DrawServiceTest.java @@ -2,8 +2,10 @@ package top.fjy8018.designpattern.pattern.behavior.visitor.spring; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; +import top.fjy8018.designpattern.pattern.behavior.visitor.spring.bean.Building; import top.fjy8018.designpattern.pattern.behavior.visitor.spring.bean.Factory; import top.fjy8018.designpattern.pattern.behavior.visitor.spring.bean.Node; +import top.fjy8018.designpattern.pattern.behavior.visitor.spring.bean.School; /** * DrawService中只有4个draw方法,参数类型分别是Factory, Building, School和Node,如果调用方传了一个City进来怎么办? @@ -26,7 +28,18 @@ class DrawServiceTest { private void draw(Node node) { DrawService drawService = new DrawService(); - drawService.draw(node); + if (node instanceof Building) { + Building building = (Building) node; + drawService.draw(building); + } else if (node instanceof Factory) { + Factory factory = (Factory) node; + drawService.draw(factory); + } else if (node instanceof School) { + School school = (School) node; + drawService.draw(school); + } else { + drawService.draw(node); + } } } \ No newline at end of file