Java面向接口編程之命令模式實例詳解
本文實例講述了Java面向接口編程之命令模式。分享給大家供大家參考,具體如下:
一 點睛
某個方法需要完成某個行為,但這個行為的具體實現(xiàn)無法確定,必須等到執(zhí)行該方法時才可以確定。
例如:假設(shè)有個方法需要遍歷某個數(shù)組的數(shù)組元素,但無法確定在遍歷數(shù)組時如何處理這些元素,需要在調(diào)用該方法時指定具體的處理行為。
對于這樣一個需求,必須把處理行為作為參數(shù)傳入該方法,這個處理行為用編程實現(xiàn)就是一段代碼,可以考慮使用一個Command接口來定義一個方法,用這個方法來封裝處理行為。
二 代碼
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());
}
}
三 運行
迭代輸出目標(biāo)數(shù)組的元素:3
迭代輸出目標(biāo)數(shù)組的元素:-4
迭代輸出目標(biāo)數(shù)組的元素:6
迭代輸出目標(biāo)數(shù)組的元素:4
____________________
數(shù)組元素的總和是:9
四 類圖

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
詳解Spring boot上配置與使用mybatis plus
這篇文章主要介紹了詳解Spring boot上配置與使用mybatis plus,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
java判斷兩個List<String>集合是否存在交集三種方法
這篇文章主要介紹了三種判斷Java中兩個List集合是否存在交集的方法,分別是使用retainAll方法、使用Stream和anyMatch以及使用Set提高性能,每種方法都有其適用場景和優(yōu)缺點,需要的朋友可以參考下2025-03-03
struts2中通過json傳值解決亂碼問題的實現(xiàn)方法
這篇文章主要介紹了struts2中通過json傳值解決亂碼問題的實現(xiàn)方法,涉及js編碼及java解碼的相關(guān)操作技巧,需要的朋友可以參考下2016-06-06
詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法
這篇文章主要介紹了詳解Java的內(nèi)置異常以及創(chuàng)建自定義異常子類的方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09

