編輯歷史

時間 作者 版本
2017-07-03 08:25 (unknown) r2
顯示 diff
- Visitor
+ Visitor
*import java.util.*;
(70 行未修改)
2017-07-01 14:55 – 14:55 (unknown) r0 – r1
顯示 diff
+ Visitor
+ *import java.util.*;
+ *public interface Checker {
+ * //訪問者check不同的對象會做不同的事情
+ * public void check(State s);
+ * //
+ * public void check(Transition t);
+ * //
+ * public void check(StateDiagram sd);
+ * //
+ *}
+ *public interface DiagramElement {
+ * //接受訪客訪問的介面
+ * public void accept(Checker c);
+ *}
+ *public class SyntaxCheck implements Checker{
+ * //SyntaxCheck實做checker
+ * public void check(State s) {
+ * //印出SytaxCheck State的結果
+ * System.out.println("SyntaxCheck");
+ * }
+ * public void check(Transition t) {
+ * System.out.println("SyntaxCheck");
+ * }
+ * public void check(StateDiagram sd) {
+ * System.out.println("SyntaxCheck");
+ * }
+ *}
+ *public class RelationCheck implements Checker{
+ *
+ * public void check(State s) {
+ * System.out.println("RelationCheck");
+ * }
+ * public void check(Transition t) {
+ * System.out.println("RelationCheck");
+ * }
+ * public void check(StateDiagram sd) {
+ * System.out.println("RelationCheck");
+ * }
+ *}
+ *public class State implements DiagramElement {
+ *
+ * @Override
+ * public void accept(Checker c) {
+ * //訪問這透過accept介面去check此物件
+ * c.check(this);
+ * }
+ *
+ *}
+ *public interface DiagramElement {
+ * //接受訪客訪問的介面
+ * public void accept(Checker c);
+ *}
+ *public class StateDiagram implements DiagramElement{
+ * private ArrayList<DiagramElement> element = new ArrayList<DiagramElement>();
+ * public void add(DiagramElement e){
+ * element.add(e);
+ * }
+ * @Override
+ * public void accept(Checker c) {
+ * //訪問這透過accept介面去check此物件
+ * c.check(this);
+ *
+ * Iterator itr = element.iterator();
+ * while(itr.hasNext()){
+ * //訪問者check StateDiagram底下的element
+ * ((DiagramElement)itr.next()).accept(c);
+ * }
+ * }
+ *
+ *}
+ *