设计模式
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