国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計(jì)模式—行為型模式之命令模式

這篇具有很好參考價(jià)值的文章主要介紹了設(shè)計(jì)模式—行為型模式之命令模式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

設(shè)計(jì)模式—行為型模式之命令模式

命令(Command)模式:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,使發(fā)出請(qǐng)求的責(zé)任和執(zhí)行請(qǐng)求的責(zé)任分割開(kāi)。這樣兩者之間通過(guò)命令對(duì)象進(jìn)行溝通,這樣方便將命令對(duì)象進(jìn)行儲(chǔ)存、傳遞、調(diào)用、增加與管理。

命令模式包含以下主要角色。

  • 抽象命令類(lèi)(Command)角色:聲明執(zhí)行命令的接口,擁有執(zhí)行命令的抽象方法 execute()。
  • 具體命令類(lèi)(Concrete Command)角色:是抽象命令類(lèi)的具體實(shí)現(xiàn)類(lèi),它擁有接收者對(duì)象,并通過(guò)調(diào)用接收者的功能來(lái)完成命令要執(zhí)行的操作。
  • 實(shí)現(xiàn)者/接收者(Receiver)角色:執(zhí)行命令功能的相關(guān)操作,是具體命令對(duì)象業(yè)務(wù)的真正實(shí)現(xiàn)者。
  • 調(diào)用者/請(qǐng)求者(Invoker)角色:是請(qǐng)求的發(fā)送者,它通常擁有很多的命令對(duì)象,并通過(guò)訪問(wèn)命令對(duì)象來(lái)執(zhí)行相關(guān)請(qǐng)求,它不直接訪問(wèn)接收者。

示例

實(shí)際上,我們?nèi)粘i_(kāi)發(fā)過(guò)程中mvc三層開(kāi)發(fā),就是一種命令模式的實(shí)現(xiàn)。

我們看一個(gè)其他的例子。

寵物狗的主人可以讓寵物吃飯,玩耍。

命令接口類(lèi)如下:

public interface Command {
    /**
     * 命令的執(zhí)行方法
     */
    void execute();
}

命令執(zhí)行者如下:

/**
 * 命令接收者
 */
public class Dog {
    public void eat(){
        System.out.println("小狗吃飯");
    }
    
    public void play(){
        System.out.println("小狗玩耍");
    }
}

吃飯命令類(lèi)如下:

/**
 * 吃飯命令類(lèi)
 */
public class EatCommand implements Command{
    private Dog dog;

    public EatCommand(Dog dog) {
        this.dog = dog;
    }

    @Override
    public void execute() {
        dog.eat();
    }
}

玩耍命令類(lèi)如下:

/**
 * 玩耍命令類(lèi)
 */
public class PlayCommand implements Command{
    private Dog dog;

    public PlayCommand(Dog dog) {
        this.dog = dog;
    }

    @Override
    public void execute() {
        dog.play();
    }
}

命令發(fā)起者如下:

/**
 * 命令發(fā)起者
 */
public class Human {
    private Command command;

    public void setCommand(Command command) {
        this.command = command;
    }

    public void call(){
        command.execute();
    }

}

測(cè)試類(lèi)如下:

public class CommandTest {
    public static void main(String[] args) {
        Dog dog = new Dog();
        EatCommand eatCommand = new EatCommand(dog);
        PlayCommand playCommand = new PlayCommand(dog);

        Human human = new Human();
        human.setCommand(eatCommand);
        human.call();

        human.setCommand(playCommand);
        human.call();
    }
}

運(yùn)行結(jié)果如下:

設(shè)計(jì)模式—行為型模式之命令模式,設(shè)計(jì)模式,設(shè)計(jì)模式,命令模式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-823580.html

到了這里,關(guān)于設(shè)計(jì)模式—行為型模式之命令模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 設(shè)計(jì)模式—行為型模式之命令模式

    設(shè)計(jì)模式—行為型模式之命令模式

    命令(Command)模式:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,使發(fā)出請(qǐng)求的責(zé)任和執(zhí)行請(qǐng)求的責(zé)任分割開(kāi)。這樣兩者之間通過(guò)命令對(duì)象進(jìn)行溝通,這樣方便將命令對(duì)象進(jìn)行儲(chǔ)存、傳遞、調(diào)用、增加與管理。 命令模式包含以下主要角色。 抽象命令類(lèi)(Command)角色:聲明執(zhí)行命令的接口,

    2024年01月25日
    瀏覽(22)
  • 笨蛋學(xué)設(shè)計(jì)模式行為型模式-命令模式【19】

    8.6.1概念 ? 命令模式允許將請(qǐng)求封裝成一個(gè)對(duì)象(命令對(duì)象,包含執(zhí)行操作所需地所有信息),并將命令對(duì)象按照一定的順序存儲(chǔ)在隊(duì)列中,然后再逐一調(diào)用執(zhí)行,這些命令可以支持反向操作,進(jìn)行撤銷(xiāo)和重做。這樣發(fā)送者就只需要觸發(fā)命令就可以完成操作,不需要知道接受者

    2024年01月23日
    瀏覽(24)
  • 設(shè)計(jì)模式(016)行為型之命令模式

    ????????命令模式,它將請(qǐng)求封裝成一個(gè)對(duì)象,從而允許客戶(hù)端參數(shù)化操作隊(duì)列、記錄請(qǐng)求日志、支持撤銷(xiāo)操作等。在命令模式中,有四個(gè)核心角色:命令接口(Command)、具體命令(ConcreteCommand)、調(diào)用者(Invoker)、接收者(Receiver)。 ① 命令接口(Command) :聲明了執(zhí)

    2024年04月11日
    瀏覽(24)
  • 【設(shè)計(jì)模式】第16節(jié):行為型模式之“命令模式”

    【設(shè)計(jì)模式】第16節(jié):行為型模式之“命令模式”

    命令模式:將請(qǐng)求(命令)封裝為一個(gè)對(duì)象,這樣可以使用不同的請(qǐng)求參數(shù)化其他對(duì)象(將不同請(qǐng)求依賴(lài)注入到其他對(duì)象),并且能夠支持請(qǐng)求(命令)的排隊(duì)執(zhí)行、記錄日志、撤銷(xiāo)等(附加控制)功能。 動(dòng)作封裝 解耦發(fā)送者跟接受者 可擴(kuò)展性 簡(jiǎn)化和集中錯(cuò)誤處理 支持撤

    2024年02月07日
    瀏覽(32)
  • 【Java 設(shè)計(jì)模式】行為型之命令模式

    命令模式(Command Pattern)是一種行為型設(shè)計(jì)模式,用于將請(qǐng)求封裝為對(duì)象,使得可以參數(shù)化客戶(hù)端對(duì)象,并且能夠排隊(duì)、記錄請(qǐng)求,以及支持撤銷(xiāo)操作。在本文中,我們將深入研究Java中命令模式的定義、結(jié)構(gòu)、使用場(chǎng)景以及如何在實(shí)際開(kāi)發(fā)中應(yīng)用。 命令模式是一種行為型設(shè)

    2024年01月23日
    瀏覽(27)
  • 【設(shè)計(jì)模式|行為型】命令模式(Command Pattern)

    命令模式(Command Pattern)是一種行為設(shè)計(jì)模式,它將請(qǐng)求封裝為一個(gè)對(duì)象,以便在不同的請(qǐng)求者和接收者之間進(jìn)行解耦、參數(shù)化和操作的隊(duì)列化。命令模式允許你將具體的請(qǐng)求封裝為對(duì)象,這些對(duì)象之間彼此獨(dú)立,并且可以用不同的請(qǐng)求對(duì)客戶(hù)端進(jìn)行參數(shù)化。 結(jié)構(gòu) 命令接口

    2024年02月15日
    瀏覽(27)
  • 掌握設(shè)計(jì)模式:深入了解命令模式的優(yōu)雅調(diào)度與行為解耦

    掌握設(shè)計(jì)模式:深入了解命令模式的優(yōu)雅調(diào)度與行為解耦

    命令模式是一種行為設(shè)計(jì)模式,其目的是將請(qǐng)求發(fā)送者和接收者解耦,從而允許發(fā)送者發(fā)送請(qǐng)求,而無(wú)需知道請(qǐng)求的具體處理方式。在命令模式中,請(qǐng)求被封裝為一個(gè)對(duì)象,這個(gè)對(duì)象包含了執(zhí)行請(qǐng)求所需的所有信息,包括調(diào)用方法、參數(shù)等。這樣,請(qǐng)求的發(fā)送者只需知道如何

    2024年01月25日
    瀏覽(25)
  • 《golang設(shè)計(jì)模式》第三部分·行為型模式-02-命令模式(Command)

    《golang設(shè)計(jì)模式》第三部分·行為型模式-02-命令模式(Command)

    命令模式(Command)將類(lèi)的業(yè)務(wù)行為以對(duì)象的方式封裝,以便實(shí)現(xiàn)行為的參數(shù)化、撤銷(xiāo)或重做等需求。 非命令模式的困惑: 類(lèi)的行為在運(yùn)行時(shí)是以實(shí)例方法的形式調(diào)用的,當(dāng)方法執(zhí)行完畢并返回后,方法棧將會(huì)消除;方法的運(yùn)行狀態(tài)(主要指局部變量)保存在棧幀中,它會(huì)隨

    2024年02月07日
    瀏覽(25)
  • Java設(shè)計(jì)模式之行為型-命令模式(UML類(lèi)圖+案例分析)

    Java設(shè)計(jì)模式之行為型-命令模式(UML類(lèi)圖+案例分析)

    目錄 一、基礎(chǔ)概念 二、UML類(lèi)圖 三、角色設(shè)計(jì) 四、案例分析 4.1、基本實(shí)現(xiàn) 4.2、點(diǎn)餐案例? 五、總結(jié) 1、將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,使您可以用不同的請(qǐng)求對(duì)客戶(hù)進(jìn)行參數(shù)化。 2、對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷(xiāo)的操作。 3、將命令對(duì)象與執(zhí)行命令的對(duì)象分離,

    2024年02月16日
    瀏覽(24)
  • 【設(shè)計(jì)模式與范式:行為型】71 | 命令模式:如何利用命令模式實(shí)現(xiàn)一個(gè)手游后端架構(gòu)?

    設(shè)計(jì)模式模塊已經(jīng)接近尾聲了,現(xiàn)在我們只剩下 3 個(gè)模式還沒(méi)有學(xué)習(xí),它們分別是:命令模式、解釋器模式、中介模式。這 3 個(gè)模式使用頻率低、理解難度大,只在非常特定的應(yīng)用場(chǎng)景下才會(huì)用到,所以,不是我們學(xué)習(xí)的重點(diǎn),你只需要稍微了解,見(jiàn)了能認(rèn)識(shí)就可以了。 今天

    2024年02月09日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包