<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 訪問者模式 表示一個作用于某對象結構中的各個元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。(摘抄) 從這個名字也可以看出來,這個模式就是針對于對象訪問的模式,這個模式里面的每一各具體訪問者,代表一個具體的操作,當你需要增加操作的時候十分方便,不過這個里面的訪問者類和具體的去訪問的類耦合十分緊密,所以說這個模式的局限性也很大,只適用于數據結構比較穩定的系統,它把數據結構和作用于結構上的操作之間的耦合解開了,轉移到了訪問者類之中。有比較穩定的數據結構,和易于變化的算法的話,使用訪問者模式就十分方便。 ~~~ import java.util.ArrayList; import java.util.List; public abstract class Visitor { public abstract void visitConcreteElementA(ConcreteElementA concreteElementA); public abstract void visitConcreteElementB(ConcreteElementB concreteElementB); } public abstract class Element { public abstract void Accept(Visitor visitor); } public class ConcreteElementA extends Element { @Override public void Accept(Visitor visitor) { // TODO Auto-generated method stub visitor.visitConcreteElementA(this); } } public class ConcreteElementB extends Element { @Override public void Accept(Visitor visitor) { // TODO Auto-generated method stub visitor.visitConcreteElementB(this); } } public class ConcreteVisitor1 extends Visitor { @Override public void visitConcreteElementA(ConcreteElementA concreteElementA) { // TODO Auto-generated method stub System.out.println(this.getClass()+" visit "+concreteElementA.getClass()); } @Override public void visitConcreteElementB(ConcreteElementB concreteElementB) { // TODO Auto-generated method stub System.out.println(this.getClass()+" visit "+concreteElementB.getClass()); } } public class ConcreteVisitor2 extends Visitor { @Override public void visitConcreteElementA(ConcreteElementA concreteElementA) { // TODO Auto-generated method stub System.out.println(this.getClass()+" visit "+concreteElementA.getClass()); } @Override public void visitConcreteElementB(ConcreteElementB concreteElementB) { // TODO Auto-generated method stub System.out.println(this.getClass()+" visit "+concreteElementB.getClass()); } } public class ObjectStructure { private List<Element> lists = new ArrayList<Element>(); public void addElement(Element element) { lists.add(element); } public void deleteElement(Element element) { lists.remove(element); } public void Accept(Visitor visitor) { for (Element element : lists) { element.Accept(visitor); } } } class Client { public static void main() { ObjectStructure objectStructure = new ObjectStructure(); objectStructure.addElement(new ConcreteElementA()); objectStructure.addElement(new ConcreteElementB()); ConcreteVisitor1 concreteVisitor1 = new ConcreteVisitor1(); ConcreteVisitor2 concreteVisitor2 = new ConcreteVisitor2(); objectStructure.Accept(concreteVisitor1); objectStructure.Accept(concreteVisitor2); } } ~~~ 大多數時候你并不需要訪問者模式,但當一旦你需要訪問者模式時,那就是真的需要它了。(摘抄)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看