溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Java怎么實(shí)現(xiàn)命令模式

發(fā)布時(shí)間:2021-05-26 10:12:34 來源:億速云 閱讀:161 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)使用Java怎么實(shí)現(xiàn)命令模式,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一 點(diǎn)睛

某個(gè)方法需要完成某個(gè)行為,但這個(gè)行為的具體實(shí)現(xiàn)無法確定,必須等到執(zhí)行該方法時(shí)才可以確定。

例如:假設(shè)有個(gè)方法需要遍歷某個(gè)數(shù)組的數(shù)組元素,但無法確定在遍歷數(shù)組時(shí)如何處理這些元素,需要在調(diào)用該方法時(shí)指定具體的處理行為。

對(duì)于這樣一個(gè)需求,必須把處理行為作為參數(shù)傳入該方法,這個(gè)處理行為用編程實(shí)現(xiàn)就是一段代碼,可以考慮使用一個(gè)Command接口來定義一個(gè)方法,用這個(gè)方法來封裝處理行為。

二 代碼

1 Command接口

public interface Command
{
  // 接口里定義的process()方法用于封裝“處理行為”
  void process(int[] target);
}

2 PrintCommand類

public class PrintCommand implements Command
{
  public void process(int[] target)
  {
   for (int tmp : target )
   {
     System.out.println("迭代輸出目標(biāo)數(shù)組的元素:" + tmp);
   }
  }
}

3 AddCommand類

public class AddCommand implements Command
{
  public void process(int[] target)
  {
   int sum = 0;
   for (int tmp : target )
   {
     sum += tmp;
   }
   System.out.println("數(shù)組元素的總和是:" + sum);
  }
}

4 ProcessArray類

public class ProcessArray
{
  public void process(int[] target , Command cmd)
  {
   cmd.process(target);
  }
}

5 CommandTest類

public class CommandTest {
  public static void main(String[] args)
  {
    ProcessArray pa = new ProcessArray();
    int[] target = {3, -4, 6, 4};
    // 處理數(shù)組,具體處理行為取決于匿名內(nèi)部類
    pa.process(target,new PrintCommand());
    System.out.println("____________________");
    pa.process(target,new AddCommand());
  }
}

三 運(yùn)行

迭代輸出目標(biāo)數(shù)組的元素:3
迭代輸出目標(biāo)數(shù)組的元素:-4
迭代輸出目標(biāo)數(shù)組的元素:6
迭代輸出目標(biāo)數(shù)組的元素:4
____________________
數(shù)組元素的總和是:9

四 類圖

使用Java怎么實(shí)現(xiàn)命令模式

Java有哪些集合類

Java中的集合主要分為四類:1、List列表:有序的,可重復(fù)的;2、Queue隊(duì)列:有序,可重復(fù)的;3、Set集合:不可重復(fù);4、Map映射:無序,鍵唯一,值不唯一。

看完上述內(nèi)容,你們對(duì)使用Java怎么實(shí)現(xiàn)命令模式有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI