<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                訪問者模式(Visitor):把數據結構和作用于結構上的操作解耦合,使得操作集合可相對自由地演化。訪問者模式適用于數據結構相對穩定而算法又容易變化的系統。訪問者模式的優點是增加操作很容易,因為增加操作意味著增加新的訪問者;而它的缺點就是增加新的數據結構很困難。 ##一、uml建模: ![](https://box.kancloud.cn/2016-02-19_56c7196f5b480.jpg) ##二、代碼實現 ~~~ /** * 訪問者模式(Visitor):把數據結構和作用于結構上的操作解耦合,使得操作集合可相對自由地演化。 * * 訪問者模式就是一種分離對象數據結構與行為的方法,通過這種分離, * * 可達到為一個被訪問者動態添加新的操作而無需做其它的修改的效果。 */ interface Visitor { /** * 訪問對象 * * @param subject * 待訪問的對象 */ public void visitor(Subject subject); } class MyVisitor implements Visitor { @Override public void visitor(Subject subject) { System.out.println("MyVisitor 訪問的屬性值為:" + subject.getField()); } } class OtherVisitor implements Visitor { @Override public void visitor(Subject subject) { System.out.println("OtherVisitor 訪問的屬性值為:" + subject.getField()); } } interface Subject { /**接受將要訪問它的對象 */ public void accept(Visitor visitor); /**獲取將要被訪問的屬性 */ public String getField(); } class MySubject implements Subject { private String name; public MySubject(String name) { this.name = name; } /** * 這是核心:接收【指定的訪問者】來訪問咱自身的MySubject類的狀態或特征 */ @Override public void accept(Visitor visitor) { visitor.visitor(this); } @Override public String getField() { return name; } } /** * 客戶端測試類 * * @author Leo */ public class Test { public static void main(String[] args) { /** * 創建待訪問的對象 */ Subject subject = new MySubject("張三"); /** * 接受訪問對象:這里只接收MyVisitor訪問者對象,不接收OtherVisitor訪問者對象 */ subject.accept(new MyVisitor()); } } ~~~ ##三、總結 訪問者模式就是一種分離對象數據結構與行為的方法,通過這種分離,可達到為一個被訪問者動態添加新的操作而無需做其它的修改的效果。
                  <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>

                              哎呀哎呀视频在线观看