Merge remote-tracking branch 'origin/master'
This commit is contained in:
10
sjms/src/main/java/com/quinn/sjms/visitor/Element.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/visitor/Element.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.visitor;
|
||||||
|
|
||||||
|
public abstract class Element {
|
||||||
|
|
||||||
|
//定义业务逻辑
|
||||||
|
public abstract void doSomething();
|
||||||
|
//允许谁来访问
|
||||||
|
public abstract void accept(IVisitor visitor);
|
||||||
|
|
||||||
|
}
|
||||||
13
sjms/src/main/java/com/quinn/sjms/visitor/ElementImpl.java
Normal file
13
sjms/src/main/java/com/quinn/sjms/visitor/ElementImpl.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package com.quinn.sjms.visitor;
|
||||||
|
|
||||||
|
public class ElementImpl extends Element {
|
||||||
|
@Override
|
||||||
|
public void doSomething() {
|
||||||
|
System.out.println("干饭");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(IVisitor visitor) {
|
||||||
|
visitor.visit(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.quinn.sjms.visitor;
|
||||||
|
|
||||||
|
public class ElementStructure {
|
||||||
|
|
||||||
|
public static Element createElement(){
|
||||||
|
return new ElementImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
12
sjms/src/main/java/com/quinn/sjms/visitor/IVisitor.java
Normal file
12
sjms/src/main/java/com/quinn/sjms/visitor/IVisitor.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package com.quinn.sjms.visitor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit方法的参数定
|
||||||
|
* 义哪些对象是可以被访问的。
|
||||||
|
*/
|
||||||
|
public interface IVisitor {
|
||||||
|
|
||||||
|
//可以访问哪些对象
|
||||||
|
void visit(ElementImpl el1);
|
||||||
|
|
||||||
|
}
|
||||||
8
sjms/src/main/java/com/quinn/sjms/visitor/Visitor.java
Normal file
8
sjms/src/main/java/com/quinn/sjms/visitor/Visitor.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package com.quinn.sjms.visitor;
|
||||||
|
|
||||||
|
public class Visitor implements IVisitor {
|
||||||
|
@Override
|
||||||
|
public void visit(ElementImpl el1) {
|
||||||
|
el1.doSomething();
|
||||||
|
}
|
||||||
|
}
|
||||||
11
sjms/src/main/java/com/quinn/sjms/visitor/VisitorClient.java
Normal file
11
sjms/src/main/java/com/quinn/sjms/visitor/VisitorClient.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package com.quinn.sjms.visitor;
|
||||||
|
|
||||||
|
public class VisitorClient {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Element element = ElementStructure.createElement();
|
||||||
|
Visitor visitor = new Visitor();
|
||||||
|
element.accept(visitor);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user