1. 程式人生 > >初學Java 面向介面程式設計 命令模式 十八

初學Java 面向介面程式設計 命令模式 十八

               

命令模式 :把一個請求或者操作封裝到一個物件中。命令模式把發出命令的責任和執行命令的責任分割開,委派給不同的物件。命令模式允許請求的一方和傳送的一方獨立開來,使得請求的一方不必知道接收請求的一方的介面,更不必知道請求是怎麼被接收,以及操作是否執行,何時被執行以及是怎麼被執行的。系統支援命令的撤消。

命令模式就像是把“處理行為”作為引數傳入一個方法,這個“處理行為”用程式設計來實現就是一段程式碼

public interface Command//接口裡定義的process方法用於封裝"處理行為" void process(int[] target);}

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

public class PrintCommand implements Command public void process(int[] target) {  for(int tmp : target)  {   System.out.println("迭代輸出目標陣列的元素:" + tmp);  } }}

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

public class TestCommand public static void main(String[] args)  {  ProcessArray pa = new ProcessArray();  int[] target = {3,-4,6,4};  //第一次處理陣列,具體處理行為取決於PrintCommand  pa.process(target,new
PrintCommand());  //第二次處理陣列,具體處理行為取決於AddCommand  pa.process(target,new AddCommand()); }}

TestCommand為請求命令的一方,它只關心process方法,至於執行process方法的時候,具體做的什麼操作,由傳入的引數決定

process方法已經和它的處理行為分離開了,這就是請求命令一方與具體命令的解藕

上面還有一點不足的是客戶端需要知道PrintCommand和AddCommand這兩個類,這裡可以使用工廠模式來代替new,這樣客戶端不再需要知道眾多的Command物件,而是知道一個CommondFactory就足夠了

           

相關推薦

初學Java 面向介面程式設計 命令模式

                命令模式 :把一個請求或者操作封裝到一個物件中。命令模式把發出命令的責任和執行命令的責任分割開,委派給不同的物件。命令模式允許請求的一方和傳送的一方獨立開來,使得請求的一方不必知道接收請求的一方的介面,更不必知道請求是怎麼被接收,以及操作是否執行,何時被執行以及是怎麼被執行的。

初學Java 面向接口編程 命令模式

易懂 人工 cto 接口編程 行為 con ria 一次 ref 分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net 命令模式 :把一個請求或者操作封裝到

Java面向介面程式設計,低耦合高內聚的設計哲學

介面體現的是一種規範和實現分離的設計哲學,充分利用介面可以極大的降低程式中各個模組之間的耦合,提高系統的可維護性以及可擴充套件性。     因此,很多的軟體架構設計理念都倡導“面向介面程式設計”而不是面向實現類程式設計,以期通過這種方式來降低程式的耦合。  

JAVA面向介面程式設計

1.介面的概念:java中,介面是一個特殊的抽象類,接口裡面的所有方法都是抽象方法,所有屬性都是常量。只定義了方法,但是沒有方法的具體實現。 2.介面的思想:介面的思想是指將外部的呼叫和內部的實現隔離開來,也就是“封裝隔離” 3.介面的好處:因為介面將外部的呼叫和內部的實現隔離開來,所以當改變內部的但是沒有

201771010134楊其菊《面向物件程式設計》第週學習總結

實驗十八  總複習 實驗時間 2018-12-30 1、實驗目的與要求 (1) 綜合掌握java基本程式結構; (2) 綜合掌握java面向物件程式設計特點; (3) 綜合掌握java GUI 程式設計結構; (4) 綜合掌握java多執行緒程式設計模型; (5)

201771010109焦旭超《面向物件程式設計》第週學習總結

1、實驗目的與要求 (1) 綜合掌握java基本程式結構; (2) 綜合掌握java面向物件程式設計特點; (3) 綜合掌握java GUI 程式設計結構; (4) 綜合掌握java多執行緒程式設計模型; (5) 綜合程式設計練習。 2、實驗內容和步驟 任務1:填寫課程課後調

20177101010101 白瑪次仁《面向物件程式設計》第週學習總結

實驗十八  總複習 實驗時間 2018-12-30 1、實驗目的與要求 (1) 綜合掌握java基本程式結構; (2) 綜合掌握java面向物件程式設計特點; (3) 綜合掌握java GUI 程式設計結構; (4) 綜合掌握java多執行緒程式設計模型; (5)

JAVA面向物件程式設計之購物車介面的設計與功能的實現

1、小組成員及分工 小組成員 負責工作 蘭澤祥 負責總體介面、Git程式碼庫 吳修恩 負責MVC模式、類名包名的規範化 2、Git 倉庫地址 倉庫地址:https://gitee

面向介面程式設計詳解-Java

 相信看到這篇文字的人已經不需要了解什麼是介面了,我就不再過多的做介紹了,直接步入正題,介面測試如何編寫。那麼在這一篇裡,我們用一個例子,讓各位對這個重要的程式設計思想有個直觀的印象。為充分考慮到初學者,所以這個例子非常簡單,望各位高手見諒。   為了擺脫新手的概念,我這裡也儘量不用main

Java 面向物件程式設計介面內部類

介面,內部類,抽象類本質上也是類,是抽象的抽象類,這三種類有各自的特點。 1. 抽象類、 設計與實現的分開 抽象類:定義了抽象方法的類,不能例項化,只能被子類實現 , 用關鍵字abstract修飾。 抽象方法:只定義了方法體,沒有定義內容。 作用:為所有子類建立一

Java之“面向介面程式設計”-2

補充(2018-12-09): 其實介面的另外一個概念就是監聽,比如我要從一個地方獲取某個引數的狀態,其實有很多種方法例如:事件匯流排、廣播、介面監聽等。而在這些方法中使用介面無疑是代價(程式碼量以及過程中消耗的時間)最小的。 還是使用程式碼演示吧: 思路:建立一個單例模式的類,任何呼叫

java web之面向介面程式設計

1.在類中呼叫介面的方法,而不關心具體的實現,有利於程式碼的解耦,有更好地可移植性和可擴充套件性!!!!! . //2.具體的方法流程 1配置servlet---2.構建Servlet的init()

Java面向切面程式設計(AOP模式

原文:http://www.cnblogs.com/yanbincn/archive/2012/06/01/2530377.html Aspect Oriented Programming  面向切面程式設計。解耦是程式設計師編碼開發過程中一直追求的。AOP也是為了解耦所誕

學習Java面向物件程式設計和設計模式最好的5本書

對於任何一個Java開發人員來說,必須學會面向物件的設計原則和各種設計模式的知識。但有一些關於面向物件設計原則、設計模式和最佳實踐的書籍,只有少數幾本書能做到真正在講解這方面內容。 設計原則和設計模式,設計原則是基礎,設計模式是基於這個基礎的最佳實踐。首先應該學習面向物件的理論原則,然後學習設計

android面向介面程式設計(抽象工廠模式,擴充套件性超強,Demo優化)

本分開始之前。咱先提出來幾個疑問: 介面有什麼用途? 面向介面程式設計的好處? 它和抽象類有什麼區別? 能不能用抽象類代替介面呢? 它和麵向物件程式設計是什麼關係? 本分主要分為: 1.面向介面程式設計和麵向物件程式設計是什麼關係? 2.介面

策略模式:封裝變化與面向介面程式設計

摘要:      在使用Java的集合框架中,經常需要通過構造方法傳入一個比較器Comparator或者建立比較器傳入Collections的靜態方法中作為方法引數,進行比較排序等,這其實就是策略模式的應用。策略模式是封裝變化和麵向介面程式設計兩個基本的面向

JAVA 程式設計(二)窗體的建立設計如下GUI介面

設計如下GUI介面:(當用戶點選“完成”按鈕後,把姓名、性別、興趣等資訊顯示在文字區域中,點選“取消”按鈕後,所有元件回覆到初始狀態) <span style="font-size:14px;"><strong>import java.awt.But

面向介面程式設計詳解(三)——模式研究

通過前面兩篇,我想各位朋友對“面向介面程式設計”的思想有了一定認識,並通過第二篇的例子,獲得了一定的直觀印象。但是,第二篇中的例子旨在展示面向介面程式設計的實現方法,比較簡單,不能體現出面向介面程式設計的優勢和這種思想的內涵。那麼,這一篇作為本系列的終結篇,將通過分析幾個比較

Java設計第一原則:面向介面程式設計

在專案中的意義:     在傳統的專案開發過程中,由於客戶的需求經常變化,如果不採用面向介面程式設計,那麼我們必須不停改寫現有的業務程式碼。改寫程式碼可能產生新的BUG,而且改寫程式碼還會影響到呼叫該業務的類,可能全都需要修改,影響系統本身的穩定性。而且為了將改寫程式碼帶來的影響最小,我們不得不屈服當前的系

一、java面向物件程式設計(類、物件)

那麼,人類思維的抽象性,即這些抽象概念,如何轉換應用到計算機的軟體開發中呢?或者說軟體設計、程式設計中如何體現出符合人類思維習慣的程式設計模式呢?人類思維的抽象性與面向物件的程式設計方法如何對接呢?這裡接著上面對“車”的分析,前面的“車”為一個抽象出的概念,“車”具有相關的屬性和方法,通過“車”這個名稱、屬性