spring增强访问者模式-改造前(early binding)解决

This commit is contained in:
fujiayang
2022-01-26 10:30:30 +08:00
parent 3cbc35e558
commit 86ce1f5d80

View File

@@ -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);
}
}
}