監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

命令設(shè)計(jì)模式

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

  考慮這樣一個(gè)需求:某個(gè)方法需要完成一個(gè)功能,完成這個(gè)功能的大部分步驟已經(jīng)確定下來了,但是有少量步驟的具體實(shí)施目前無法確定下來,必須要等到執(zhí)行該方法時(shí)才可以確定。這個(gè)方法不僅要求參數(shù)可變,甚至要求方法執(zhí)行體中的代碼可變。對(duì)于這樣的要求,我們必須把方法體的處理行為作為參數(shù)傳進(jìn)該方法,而處理行為用編程序來實(shí)現(xiàn)就是一段代碼塊。這種需求在設(shè)計(jì)模式中就叫做“命令模式”,在Swing和GWT之中有廣泛的使用(例如:事件處理使用的匿名內(nèi)部類)。下面就是一個(gè)命令設(shè)計(jì)模式的實(shí)現(xiàn)例子:

1.

package com.lanp.command;

/**
 * 處理數(shù)據(jù)數(shù)據(jù)項(xiàng)的借口
 * @author LanP
 * @version V1.0
 */
public interface MyCommand {

 void process(int[] target);

}

 

2.

package com.lanp.command;

/**
 * 處理數(shù)據(jù)數(shù)據(jù)內(nèi)容的處理類
 * @author LanP
 * @version V1.0
 */
public class DoArray {
 public void doArrayItems(int[] target,MyCommand myCmd) {
  myCmd.process(target);
 }
}

 

3.

package com.lanp.command;

/**
 * 用于測(cè)試命令模式的類
 * @author LanP
 * @version V1.0
 */
public class TestMyCommand {

 public static void main(String[] args) {
  DoArray doArray = new DoArray();
  int[] target = {1,-50,78,-2,9,88,520};
  //第一次對(duì)數(shù)組進(jìn)行處理,具體怎么樣處理取決于MyCommand對(duì)象
  System.out.println("----第一次對(duì)數(shù)組進(jìn)行處理----");
  doArray.doArrayItems(target, new MyCommand() {

   @Override
   public void process(int[] target) {
    //遍歷輸出數(shù)據(jù)元素
    System.out.print("數(shù)組中的元素有: ");
    for(int temp : target) {
     System.out.print(temp + " ");
    }
    System.out.println();
   }
   
  });
  
  //第二次對(duì)數(shù)組進(jìn)行處理,具體怎么樣處理取決于MyCommand對(duì)象
  System.out.println("----第二次對(duì)數(shù)組進(jìn)行處理----");
  doArray.doArrayItems(target, new MyCommand() {
   //計(jì)算數(shù)組元素中的和
   @Override
   public void process(int[] target) {
    int sum = 0;
    for(int temp  : target) {
     sum = sum + temp;
    }
    System.out.println("數(shù)組中的和為: " + sum);
   }
   
  });
 }

}




發(fā)布:2007-04-16 17:22    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]

泛普入庫出庫管理軟件其他應(yīng)用

藥品進(jìn)銷存管理系統(tǒng) 醫(yī)藥進(jìn)銷存 超市進(jìn)銷存管理系統(tǒng) 服裝進(jìn)銷存軟件 倉庫進(jìn)銷存管理軟件 進(jìn)銷存財(cái)務(wù)軟件 傻瓜進(jìn)銷存 萬能進(jìn)銷存軟件 進(jìn)銷存網(wǎng)絡(luò)版 進(jìn)銷存管理系統(tǒng) 進(jìn)銷存系統(tǒng) 服裝庫存管理軟件 條碼倉庫管理軟件 庫存管理軟件 倉庫管理軟件 庫房管理軟件 出入庫管理軟件 倉儲(chǔ)管理系統(tǒng) 倉庫管理系統(tǒng) 庫存管理系統(tǒng) 入庫出庫管理軟件 進(jìn)銷存軟件排名 倉庫管理軟件哪個(gè)好