国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

命令模式(Command)

BDEEFE / 2567人閱讀

摘要:命令模式一命令模式定義對于行為請求者和行為實(shí)現(xiàn)者,將一組行為抽象為對象,實(shí)現(xiàn)二者的松耦合角色抽象命令接口具體命令最終執(zhí)行命令的對象命令對象的入口二具體實(shí)現(xiàn)創(chuàng)建接口創(chuàng)建命令執(zhí)行對象創(chuàng)建具體實(shí)現(xiàn)類創(chuàng)建命令入口調(diào)用輸出三優(yōu)缺點(diǎn)優(yōu)點(diǎn)降低耦合度新增一

命令模式

一. 命令模式 1.1 定義

對于“行為請求者”和“行為實(shí)現(xiàn)者”,將一組行為抽象為對象,實(shí)現(xiàn)二者的松耦合.

1.2 角色

Command:抽象命令接口.

ConcreteCommand:具體命令.

Receiver:最終執(zhí)行命令的對象.

Invoker:命令對象的入口.

二. 具體實(shí)現(xiàn) 1.1 創(chuàng)建Command接口
    public interface ICommand {
        void execute();
    }
1.2 創(chuàng)建命令執(zhí)行對象
    public class Receiver {
        public void execute(){
            System.out.println("receiver execute ... ");
        }
    }
1.3 創(chuàng)建具體Command實(shí)現(xiàn)類
    public class ConcreteCommandA implements ICommand {
        private Receiver receiver;
        public ConcreteCommandA(Receiver receiver){
            this.receiver = receiver;
        }
        @Override
        public void execute() {
            System.out.println("ConcreteCommandA execute ...");
            receiver.execute();
        }
    }
    public class ConcreteCommandB implements ICommand {
        private Receiver receiver;
        public ConcreteCommandB(Receiver receiver){
            this.receiver = receiver;
        }
        @Override
        public void execute() {
            System.out.println("ConcreteCommandB execute ...");
            receiver.execute();
        }
    }
1.4 創(chuàng)建命令入口
    public class Invoker {
        private ICommand concreteCommandA, concreteCommandB;
        public Invoker(ICommand concreteCommandA, ICommand concreteCommandB){
            this.concreteCommandA = concreteCommandA;
            this.concreteCommandB = concreteCommandB;
        }
        public void orderA(){
            concreteCommandA.execute();
        }
        public void orderB(){
            concreteCommandB.execute();
        }
    }
1.5 調(diào)用
    public static void main(String[] args) {
        Receiver receiver = new Receiver();
        Invoker invoker = new Invoker(new ConcreteCommandA(receiver), new ConcreteCommandB(receiver));
        invoker.orderA();
        invoker.orderB();
    }
1.6 輸出
    ConcreteCommandA execute ...
    receiver execute ... 
    ConcreteCommandB execute ...
    receiver execute ... 
三. 優(yōu)缺點(diǎn) 3.1 優(yōu)點(diǎn)

降低耦合度.

新增一個命令/一組命令簡單.

調(diào)用同一方法實(shí)現(xiàn)不同功能.

3.2 缺點(diǎn)

會產(chǎn)生過多具體命令類.

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

END

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/69589.html

相關(guān)文章

  • 一起學(xué)設(shè)計(jì)模式 - 命令模式

    摘要:命令模式屬于行為型模式的一種,又稱為行動模式或交易模式。結(jié)構(gòu)圖模式結(jié)構(gòu)抽象命令類聲明了用于執(zhí)行請求的的等方法具體命令類抽象命令類的子類,對應(yīng)具體的接收者對象,將接收者對象的動作綁定其中。 命令模式(Command Pattern)屬于行為型模式的一種,又稱為行動(Action)模式或交易(Transaction)模式。將一個請求封裝為一個對象,從而達(dá)到用不同的請求對客戶進(jìn)行參數(shù)化,對于...

    BakerJ 評論0 收藏0
  • 每天一個設(shè)計(jì)模式命令模式

    摘要:作者按每天一個設(shè)計(jì)模式旨在初步領(lǐng)會設(shè)計(jì)模式的精髓,目前采用和兩種語言實(shí)現(xiàn)。該對象執(zhí)行命令。命令模式按鈕參考設(shè)計(jì)模式和開發(fā)實(shí)踐如何實(shí)現(xiàn)命令模式 作者按:《每天一個設(shè)計(jì)模式》旨在初步領(lǐng)會設(shè)計(jì)模式的精髓,目前采用javascript和python兩種語言實(shí)現(xiàn)。誠然,每種設(shè)計(jì)模式都有多種實(shí)現(xiàn)方式,但此小冊只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式 :) 原文地址是:《每天一個設(shè)計(jì)模式之命令模式》 歡迎關(guān)注個人...

    paney129 評論0 收藏0
  • 每天一個設(shè)計(jì)模式命令模式

    摘要:作者按每天一個設(shè)計(jì)模式旨在初步領(lǐng)會設(shè)計(jì)模式的精髓,目前采用和兩種語言實(shí)現(xiàn)。該對象執(zhí)行命令。命令模式按鈕參考設(shè)計(jì)模式和開發(fā)實(shí)踐如何實(shí)現(xiàn)命令模式 作者按:《每天一個設(shè)計(jì)模式》旨在初步領(lǐng)會設(shè)計(jì)模式的精髓,目前采用javascript和python兩種語言實(shí)現(xiàn)。誠然,每種設(shè)計(jì)模式都有多種實(shí)現(xiàn)方式,但此小冊只記錄最直截了當(dāng)?shù)膶?shí)現(xiàn)方式 :) 原文地址是:《每天一個設(shè)計(jì)模式之命令模式》 歡迎關(guān)注個人...

    lixiang 評論0 收藏0
  • JavaScript設(shè)計(jì)模式(七):命令模式

    摘要:支持撤銷,隊(duì)列,宏命令等功能。宏命令宏命令一組命令集合命令模式與組合模式的產(chǎn)物發(fā)布者發(fā)布一個請求,命令對象會遍歷命令集合下的一系列子命令并執(zhí)行,完成多任務(wù)。 showImg(https://segmentfault.com/img/bVbu3CN?w=800&h=600); 命令模式:請求以命令的形式包裹在對象中,并傳給調(diào)用對象。調(diào)用對象尋找可以處理該命令的合適的對象,并把該命令傳給相...

    lixiang 評論0 收藏0
  • python 設(shè)計(jì)模式-命令模式

    摘要:命令模式先來看下命令模式的定義命令模式將請求封裝成對象,以便使用不同的請求隊(duì)列或者日志來參數(shù)化其他對象。命令模式也支持可撤銷的操作。通過新增兩個方法,命令模式能夠支持這一點(diǎn)。 命令模式 題目: 現(xiàn)在要做一個智能家居控制遙控器,功能如下圖所示。 showImg(https://segmentfault.com/img/remote/1460000012774337?w=1730&h=1...

    tomlingtm 評論0 收藏0
  • 優(yōu)化你的執(zhí)行隊(duì)列-組合模式

    摘要:如果把設(shè)計(jì)模式當(dāng)做一門語言的話,我覺得組合模式就是里面的數(shù)組,或者更確切的說,應(yīng)該算是一棵樹。給向上的綁定向上的執(zhí)行程序可以看出,使用組合模式命令模式可以完美的打出個兩個王的終極炸彈。將同類操作同目的操作放在一組。 如果把設(shè)計(jì)模式當(dāng)做一門語言的話,我覺得組合模式就是里面的數(shù)組,或者更確切的說,應(yīng)該算是一棵樹。 樹的枝干就是其他模式的使用,比如命令模式,代理模式,單例模式等等。總的來說,...

    fish 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<