訪問者模式(visitorpattern)

來源:互聯網
上載者:User

標籤:nts   interface   彙總   auth   visit   變化   個人   void   test   

/** * 訪問者模式 * @author TMAC-J * 在用戶端和元素之間添加一個訪問者 * 當你需要添加一些和元素關係不大的需求時,可以直接放在訪問者裡面 * 或者是元素之間有一些公用的代碼塊,你可以把它放在訪問者裡面,就不用寫重複代碼了 * 適用於元素資料基本不變,操作不斷變化的情境 * 可以不改變元素類,只改變訪問者類,個人覺得這個訪問者類相當於一個管理器 * 和迭代子模式的區別是迭代子模式主要是針對於一個彙總,其提供的最主要功能是遍曆 * 訪問者是針對某個元素,情況是元素結構不變,操作多變的情況 * 其實設計模式不用這麼死板,只要符合開閉等這些設計模式原則就可以 */public class VisitorPattern {        interface Element{                void doSomething();                void accept(IVisitor visitor);    }        public class ConcreteElement implements Element{        @Override        public void doSomething() {            System.out.println("這是具體元素!");        }        @Override        public void accept(IVisitor visitor) {            visitor.visit(this);        }            }        interface IVisitor{        void visit(Element element);    }        public class ConcreteVisitor implements IVisitor{        @Override        public void visit(Element element) {            element.doSomething();        }            }        public void test(){        IVisitor visitor = new ConcreteVisitor();        visitor.visit(new ConcreteElement());    }    }

 

訪問者模式(visitorpattern)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.