亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

訪問(wèn)者模式(Visitor)

Bryan / 688人閱讀

摘要:訪問(wèn)者模式一訪問(wèn)者模式定義表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素操作它使你可以在不改變各元素類的前提下,定義作用于這些元素的新操作角色抽象訪問(wèn)者對(duì)象具體訪問(wèn)者對(duì)象抽象元素對(duì)象具體元素對(duì)象結(jié)構(gòu)對(duì)象二具體實(shí)現(xiàn)創(chuàng)建抽象元素對(duì)象創(chuàng)建具體元素對(duì)象創(chuàng)建抽象

訪問(wèn)者模式

一. 訪問(wèn)者模式 1.1 定義

表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素操作.它使你可以在不改變各元素類的前提下,定義作用于這些元素的新操作.

1.2 角色

抽象訪問(wèn)者對(duì)象(Visit).

具體訪問(wèn)者對(duì)象(ConcreteVisit).

抽象元素對(duì)象(Element).

具體元素對(duì)象(ConcreteElement).

結(jié)構(gòu)對(duì)象(ObjectStructure).

二. 具體實(shí)現(xiàn) 2.1 創(chuàng)建抽象元素對(duì)象
    public interface IElement {
        void accept(IVisitor visitor);
    }
2.2 創(chuàng)建具體元素對(duì)象
    public class ElementA implements IElement {
        @Override
        public void accept(IVisitor visitor) {
            visitor.visit(this);
        }
    }
    public class ElementB implements IElement {
        @Override
        public void accept(IVisitor visitor) {
            visitor.visit(this);
        }
    }
2.3 創(chuàng)建抽象訪問(wèn)者對(duì)象
    public interface IVisitor {
        void visit(ElementA element);
        void visit(ElementB element);
    }
2.4 創(chuàng)建具體訪問(wèn)者對(duì)象
    public class Visitor implements IVisitor {
        @Override
        public void visit(ElementA element) {
            System.out.println("ElementA visit ... ");
        }
        @Override
        public void visit(ElementB element) {
            System.out.println("ElementB visit ... ");
        }
    }
2.5 調(diào)用
    public static void main(String[] args) {
        IElement element = new ElementA();
        IVisitor visitor = new Visitor();
        element.accept(visitor);
        element = new ElementB();
        element.accept(visitor);
    }
2.6 輸出
    ElementA visit ... 
    ElementB visit ... 
三. 優(yōu)缺點(diǎn) 3.1 優(yōu)點(diǎn)

良好的擴(kuò)展性.

靈活性.

3.2 缺點(diǎn)

增加新的元素類困難.

四. 源碼
    https://github.com/Seasons20/DisignPattern.git

END

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/69748.html

相關(guān)文章

  • 理解設(shè)計(jì)模式

    摘要:適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。代理模式為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。如果用來(lái)解決排序問(wèn)題不符合開閉原則,添加策略需要修改代碼用策略模式將策略抽象成接口,不同的策略實(shí)現(xiàn)該接口。 簡(jiǎn)單工廠、工廠方法、抽象工廠 簡(jiǎn)單工廠 通過(guò)定義多個(gè)factory.produceXXX()方法,或者通過(guò)向factory.produce(type)傳遞type參數(shù)來(lái)生成...

    saucxs 評(píng)論0 收藏0
  • PHP設(shè)計(jì)模式問(wèn)者模式

    摘要:訪問(wèn)者模式解決的問(wèn)題在我們的代碼編寫過(guò)程當(dāng)中,經(jīng)常需要對(duì)一些類似的對(duì)象添加一些的代碼,我們以一個(gè)計(jì)算機(jī)對(duì)象打印組成部分為例來(lái)看下抽象基類獲取名稱類內(nèi)存類鍵盤類計(jì)算機(jī)類循環(huán)打印各個(gè)組成部分這個(gè)時(shí)候上面的代碼看上去好像很完美的樣子,但是問(wèn) 訪問(wèn)者模式解決的問(wèn)題 在我們的代碼編寫過(guò)程當(dāng)中,經(jīng)常需要對(duì)一些類似的對(duì)象添加一些的代碼,我們以一個(gè)計(jì)算機(jī)對(duì)象打印組成部分為例來(lái)看下: /** ...

    用戶83 評(píng)論0 收藏0
  • 「譯」什么是抽象語(yǔ)法樹

    摘要:原文地址原文作者是抽象語(yǔ)法樹的縮寫詞,表示編程語(yǔ)言的語(yǔ)句和表達(dá)式中生成的。解釋器將會(huì)遍歷該數(shù)組并執(zhí)行里面的語(yǔ)句。,,,是一組相關(guān)的類,每一個(gè)類都需要攜帶方法以使解釋器獲得它們的值或者對(duì)它們求值。 原文地址:What is an Abstract Syntax Tree 原文作者:Chidume Nnamdi showImg(https://segmentfault.com/img...

    JouyPub 評(píng)論0 收藏0
  • php 設(shè)計(jì)模式問(wèn)者模式

    摘要:概念訪問(wèn)者模式實(shí)際上是讓外部類能夠獲取樹形結(jié)構(gòu)的每個(gè)節(jié)點(diǎn)的對(duì)象,對(duì)每個(gè)對(duì)象進(jìn)行操作的模式,他能讓我們?cè)诓桓膭?dòng)原有樹形結(jié)構(gòu)的基礎(chǔ)上擴(kuò)展功能。 概念: 訪問(wèn)者模式實(shí)際上是讓外部類能夠獲取樹形結(jié)構(gòu)的每個(gè)節(jié)點(diǎn)的對(duì)象,對(duì)每個(gè)對(duì)象進(jìn)行操作的模式, 他能讓我們?cè)诓桓膭?dòng)原有樹形結(jié)構(gòu)的基礎(chǔ)上擴(kuò)展功能。比如統(tǒng)計(jì)等等 在這種模式下,必須有的幾個(gè)要素: 1: 具體的元素對(duì)象, 訪問(wèn)者實(shí)際要訪問(wèn)的位置(即節(jié)...

    zzir 評(píng)論0 收藏0
  • 行為型模式

    摘要:但是發(fā)出者并不清楚到底最終那個(gè)對(duì)象會(huì)處理該請(qǐng)求,所以,責(zé)任鏈模式可以實(shí)現(xiàn),在隱瞞客戶端的情況下,對(duì)系統(tǒng)進(jìn)行動(dòng)態(tài)的調(diào)整。因?yàn)樵L問(wèn)者模式使得算法操作增加變得容易。訪問(wèn)者模式將有關(guān)行為集中到一個(gè)訪問(wèn)者對(duì)象中,其改變不影響系統(tǒng)數(shù)據(jù)結(jié)構(gòu)。 總體分為3大類:創(chuàng)建型模式 (5種):工廠方法、抽象工廠、單例、建造者、原型結(jié)構(gòu)型模式(7種):適配器、裝飾器、代理、外觀、橋接、組合、享元行為型模式(11種...

    why_rookie 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<