JAVA中使用設計模式來優化命令列交互程式的開發

來源:互聯網
上載者:User
關鍵字 java 設計模式 交互程式 優化命令列

人機交互的方式最初起始于命令列交互,雖然圖形介面的對話模式應用越來越廣泛,可是命令列交互仍然有著它不可替代的地位。 命令列交互程式是以命令列方式進行的HTTP://www.aliyun.com/zixun/aggregation/11432.html">人機交互,即使用者按著程式的提示,一步步進行輸入,而程式負責解釋並最終執行指令。

本文以一個簡單的部署 war 包的實例,說明在命令列交互程式設計中遇到的問題,以及如何使用設計模式來解決這些問題。

實例簡介

在實例中,命令列交互程式給出了一組問題請求使用者輸入,然後根據使用者的輸入將 war 包部署在伺服器上。 如圖 1 所示,應用程式共有 7 個問題,需要使用者輸入不同的部署資訊。 這些問題將以特定的順序和使用者進行交互,使用者則依次給出問題的答案。

圖 1. 單個 war 包部署實例





問題 1. 傳統命令列交互模式不支援回退和跳轉

如圖 1 所示,將 war 包部署到伺服器上共有 7 個問題請求,而使用者並不需要依次回答 7 個問題,當 war 包存在時,使用者只需要回答問題 1、2、3、6、7;而當 war 包不存在時,使用者需要回答 1、2、4、5、6、7。 因此,根據使用者輸入的不同,可能遇到的問題流也不同。 在傳統的命令列交互模式中,使用者只能按照問題流的順序前進,不能回退和跳轉,比如,使用者行進到問題 3 時,無法回退至問題 2。

問題 2. 傳統命令列交互模式很難適應需求變化

當程式的需求發生變化時,傳統的命令列交互模式也很難適應變化。 以圖 1 為例,當需要部署多個 war 包時,流程圖將會變為圖 2 所示,傳統的程式在處理這種變化時,顯得缺乏靈活性。

圖 2. 多個 war 包部署實例


本節將使用設計模式給出圖 1(單個 war 包部署)的設計方案,其後在圖 1 的設計方案的基礎上進行擴展,實現圖 2(多個 war 包部署)的需求。

稱謂約定

為了敘述方便,文中將程式的一個問題提示以及使用者的一個輸入組合稱為一個問題。 而程式提示問題的順序稱為問題流程。 使用者在任何問題時輸入處輸入特定字元返回上一個問題的功能稱為回退,而使用者輸入特定字元和問題編號來顯示某個已提問過的問題的功能稱為跳轉。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.