最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基于命令模式實(shí)現(xiàn)郵局發(fā)信功能詳解

 更新時間:2018年04月23日 10:34:31   作者:chengqiuming  
這篇文章主要介紹了Java基于命令模式實(shí)現(xiàn)郵局發(fā)信功能,較為詳細(xì)的分析了命令行模式的概念、原理并結(jié)合實(shí)例形式分析了Java使用命令行模式實(shí)現(xiàn)郵局發(fā)信功能的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Java基于命令模式實(shí)現(xiàn)郵局發(fā)信功能。分享給大家供大家參考,具體如下:

一. 模式定義

命令模式,將來自客戶端的請求封建為一個對象,無須了解這個請求激活的動作或有關(guān)接受這個請求的處理細(xì)節(jié)。命令模式的根本目的在于將"請求者"與"實(shí)現(xiàn)者"之間解耦。

二. 模式舉例

1 模式分析

我們借用郵局發(fā)信來說明這一模式。

2 命令模式靜態(tài)類圖

3 代碼示例

3.1信件接收者接口一IReceiver

package com.demo.receiver;
/**
 * 信件接收者接口
 *
 * @author
 *
 */
public interface IReceiver {
  /**
   * 收件人收到信件讀取
   *
   * @param message
   */
  public void readMail(String message);
}

3.2信件接收者一Receiver

package com.demo.receiver;
/**
 * 信件接收者
 *
 * @author
 *
 */
public class Receiver implements IReceiver {
  /**
   * 收件人收到信件讀取
   *
   * @param message
   */
  public void readMail(String message) {
    System.out.println("收件人讀取信件:" + message);
  }
}

3.3郵局接口一IPost

package com.demo.command;
/**
 * 郵局接口
 *
 * @author
 *
 */
public interface IPost {
  /**
   * 郵局發(fā)送信件
   *
   * @param message
   */
  public void sendMail(String message);
}

3.4郵局實(shí)現(xiàn)一Post

package com.demo.command;
import com.demo.receiver.IReceiver;
/**
 * 郵局實(shí)現(xiàn)類
 *
 * @author
 *
 */
public class Post implements IPost {
  // 收信人對象實(shí)例
  private final IReceiver receiver;
  /**
   * 構(gòu)造方法傳入收信人對象實(shí)例
   *
   * @param receiver
   */
  public Post(IReceiver receiver) {
    this.receiver = receiver;
  }
  /**
   * 郵局發(fā)送信件
   *
   * @param message
   */
  @Override
  public void sendMail(String message) {
    System.out.println("郵局將信件發(fā)給收信人...");
    // 郵局發(fā)送信件給收信人
    this.receiver.readMail(message);
  }
}

3.5消息發(fā)送者一Invoker

package com.demo.invoker;
import com.demo.command.IPost;
/**
 * 發(fā)信人
 *
 * @author
 *
 */
public class Invoker {
  // 郵局私有屬性
  private IPost post;
  /**
   * 設(shè)置郵局對象實(shí)例
   *
   * @param post
   */
  public void setPost(IPost post) {
    this.post = post;
  }
  /**
   * 發(fā)信人發(fā)送信件
   *
   * @param message
   */
  public void postMail(String message) {
    System.out.println("發(fā)信人投遞信件給郵局...");
    this.post.sendMail(message);
  }
}

3.6讓郵局開始工作一Client

package com.demo;
import com.demo.command.IPost;
import com.demo.command.Post;
import com.demo.invoker.Invoker;
import com.demo.receiver.Receiver;
/**
 * 客戶端應(yīng)用程序
 *
 * @author
 *
 */
public class Client {
  /**
   * @param args
   */
  public static void main(String[] args) {
    // 創(chuàng)建一個收信人對象實(shí)例
    Receiver receiver = new Receiver();
    // 創(chuàng)建一個郵局對象實(shí)例 傳入收信人對象實(shí)例
    IPost post = new Post(receiver);
    // 創(chuàng)建一個發(fā)信人對象實(shí)例 傳入郵局對象實(shí)例
    Invoker invoker = new Invoker();
    // 設(shè)置郵局
    invoker.setPost(post);
    // 發(fā)信人開始發(fā)送信息?。?!
    invoker.postMail("你好!好久不見,最近工作忙嗎?");
  }
}

4 運(yùn)行結(jié)果

發(fā)信人投遞信件給郵局...
郵局將信件發(fā)給收信人...
收件人讀取信件:你好!好久不見,最近工作忙嗎?

三. 該模式設(shè)計原則

1"開-閉"原則

2最少知識原則

四. 命令模式靜態(tài)類圖

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • Java基于Socket實(shí)現(xiàn)簡單的多線程回顯服務(wù)器功能示例

    Java基于Socket實(shí)現(xiàn)簡單的多線程回顯服務(wù)器功能示例

    這篇文章主要介紹了Java基于Socket實(shí)現(xiàn)簡單的多線程回顯服務(wù)器功能,結(jié)合實(shí)例形式分析了java使用socket進(jìn)行多線程數(shù)據(jù)傳輸?shù)南嚓P(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • 將Java程序的輸出結(jié)果寫到txt文件中的方法

    將Java程序的輸出結(jié)果寫到txt文件中的方法

    今天小編就為大家分享一篇將Java程序的輸出結(jié)果寫到txt文件中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 解決Maven依賴沖突的方法

    解決Maven依賴沖突的方法

    本文主要介紹了解決Maven依賴沖突的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • SpringBoot實(shí)現(xiàn)api加密的示例代碼

    SpringBoot實(shí)現(xiàn)api加密的示例代碼

    在項(xiàng)目中,為了保證數(shù)據(jù)的安全,我們常常會對傳遞的數(shù)據(jù)進(jìn)行加密。本文主要介紹了SpringBoot實(shí)現(xiàn)api加密的示例代碼,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 使用@ConditionalOnProperty控制是否加載的操作

    使用@ConditionalOnProperty控制是否加載的操作

    這篇文章主要介紹了使用@ConditionalOnProperty控制是否加載的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Javaweb會話跟蹤技術(shù)Cookie和Session的具體使用

    Javaweb會話跟蹤技術(shù)Cookie和Session的具體使用

    本文主要介紹了Javaweb會話跟蹤技術(shù)Cookie&Session的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 詳解Java如何判斷ResultSet結(jié)果集是否為空

    詳解Java如何判斷ResultSet結(jié)果集是否為空

    ResultSet 表示 select 語句的查詢結(jié)果集。這篇文章主要為大家詳細(xì)介紹了Java如何判斷ResultSet結(jié)果集是否為空,感興趣的可以了解一下
    2023-02-02
  • RocketMQ獲取指定消息的實(shí)現(xiàn)方法(源碼)

    RocketMQ獲取指定消息的實(shí)現(xiàn)方法(源碼)

    這篇文章主要給大家介紹了關(guān)于RocketMQ獲取指定消息的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用RocketMQ具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java中的String不可變性實(shí)現(xiàn)

    Java中的String不可變性實(shí)現(xiàn)

    在Java編程中,String類的不可變性是一個被廣泛討論和利用的特性,本文主要介紹了Java中的String不可變性實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • springMvc請求的跳轉(zhuǎn)和傳值的方法

    springMvc請求的跳轉(zhuǎn)和傳值的方法

    本篇文章主要介紹了springMvc請求的跳轉(zhuǎn)和傳值的方法,這里整理了幾種跳轉(zhuǎn)方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02

最新評論

九龙坡区| 灵宝市| 武安市| 滁州市| 仲巴县| 余干县| 阿鲁科尔沁旗| 永靖县| 盐城市| 台南市| 彭水| 高邮市| 沈阳市| 綦江县| 新晃| 泸州市| 凉城县| 庆元县| 洛宁县| 遂平县| 威信县| 依安县| 昔阳县| 天镇县| 靖宇县| 利辛县| 依安县| 江都市| 奉化市| 高陵县| 陈巴尔虎旗| 调兵山市| 土默特右旗| 通辽市| 永德县| 揭阳市| 义乌市| 永年县| 正阳县| 土默特左旗| 边坝县|