spring增强访问者模式-改造后-jdk17 Pattern Matching
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
package top.fjy8018.designpattern.pattern.creational.factorymethod;
|
||||
|
||||
import sun.misc.Launcher;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中
|
||||
|
||||
@@ -29,6 +29,14 @@ class DrawServiceTest {
|
||||
draw(new Factory());
|
||||
}
|
||||
|
||||
/**
|
||||
* 输出:draw factory
|
||||
*/
|
||||
@Test
|
||||
public void draw17() {
|
||||
draw17(new Factory());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void draw2() {
|
||||
Visitor drawVisitor = new DrawVisitor();
|
||||
@@ -52,4 +60,17 @@ class DrawServiceTest {
|
||||
}
|
||||
}
|
||||
|
||||
private void draw17(Node node) {
|
||||
DrawService drawService = new DrawService();
|
||||
if (node instanceof Building building) {
|
||||
drawService.draw(building);
|
||||
} else if (node instanceof Factory factory) {
|
||||
drawService.draw(factory);
|
||||
} else if (node instanceof School school) {
|
||||
drawService.draw(school);
|
||||
} else {
|
||||
drawService.draw(node);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user