亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Java中利用建造者模式實現辦理手機套餐功能

發布時間:2021-05-24 18:01:56 來源:億速云 閱讀:180 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關如何在Java中利用建造者模式實現辦理手機套餐功能,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、模式定義

建造者簡單理解就是造東西,只不過建造者模式建造的不是一個簡單的東西,是一個比較復雜的東西。

二、模式舉例

1 模式分析

我們借用顧客到手杌營業廳去辦理手機套餐的例子說明這一模式
經過抽象分析后,我們得出下面信息
客戶張三——終端需求
營業廳操作員——指導者(通知指導建造者生產什么樣的手機套餐)
計算機——建造者(建造各種手機套餐)
手機套餐——產品

如何在Java中利用建造者模式實現辦理手機套餐功能

2 建造者模式靜態建模

如何在Java中利用建造者模式實現辦理手機套餐功能

3 代碼示例

3.1 創建產品——手機套餐

package com.demo.buider.model;
public class MobilePackage
{
  // 話費
  private float money;
  // 短信
  private int shortInfo;
  // 彩玲
  private String music;
  public float getMoney()
  {
    return money;
  }
  public void setMoney(float money)
  {
    this.money = money;
  }
  public int getShortInfo()
  {
    return shortInfo;
  }
  public void setShortInfo(int shortInfo)
  {
    this.shortInfo = shortInfo;
  }
  public String getMusic()
  {
    return music;
  }
  public void setMusic(String music)
  {
    this.music = music;
  }
}

3.2 建造者接口

package com.demo.buider.itf;
import com.demo.buider.model.MobilePackage;
/**
 * 手機套餐Builder
 *
 * @author
 *
 */
public interface IMobileBuilder
{
  // 建造手機套餐的話費
  public void buildMoney();
  // 建造手機套餐的短信
  public void buildShortInfo();
  // 建造手機套餐的彩玲
  public void buildMusic();
  // 返回建造的手機套餐對象
  public MobilePackage getMobilePackage();
}

3.3 建立具體建造者

具體的建造者1

package com.demo.buider.itf;
import com.demo.buider.base.AbstractBasePackage;
import com.demo.buider.model.MobilePackage;
/**
 * 套餐1
 *
 * @author maofw
 *
 */
public class MobileBuilderImpl1 extends AbstractBasePackage implements IMobileBuilder
{
  // 建造手機套餐的話費
  public void buildMoney()
  {
    this.mobilePackage.setMoney(20.0f);
  }
  // 建造手機套餐的彩玲
  public void buildMusic()
  {
    this.mobilePackage.setMusic("天使");
  }
  // 建造手機套餐的短信
  public void buildShortInfo()
  {
    this.mobilePackage.setShortInfo(400);
  }
  // 返回建造的手機套餐對象
  public MobilePackage getMobilePackage()
  {
    return this.mobilePackage;
  }
}

具體的建造者2

package com.demo.buider.itf;
import com.demo.buider.base.AbstractBasePackage;
import com.demo.buider.model.MobilePackage;
/**
 * 套餐2
 *
 * @author maofw
 *
 */
public class MobileBuilderImpl2 extends AbstractBasePackage implements IMobileBuilder
{
  // 建造手機套餐的話費
  public void buildMoney()
  {
    this.mobilePackage.setMoney(30.0f);
  }
  // 建造手機套餐的彩玲
  public void buildMusic()
  {
    this.mobilePackage.setMusic("大海");
  }
  // 建造手機套餐的短信
  public void buildShortInfo()
  {
    this.mobilePackage.setShortInfo(600);
  }
  // 返回建造的手機套餐對象
  public MobilePackage getMobilePackage()
  {
    return this.mobilePackage;
  }
}

3.4 創建指導者

package com.demo.buider.director;
import com.demo.buider.itf.IMobileBuilder;
import com.demo.buider.model.MobilePackage;
/**
 * 手機套餐指導者
 *
 * @author maofw
 *
 */
public class MobileDirector
{
  public MobilePackage createMobilePackage(IMobileBuilder mobileBuilder)
  {
    if (mobileBuilder != null)
    {
      // 構建話費
      mobileBuilder.buildMoney();
      // 構建短信
      mobileBuilder.buildShortInfo();
      // 構建彩玲
      mobileBuilder.buildMusic();
      // 返回手機套餐
      return mobileBuilder.getMobilePackage();
    }
    return null;
  }
}

讓客戶訂購手機套餐

package com.demo.buider;
import com.demo.buider.director.MobileDirector;
import com.demo.buider.itf.MobileBuilderImpl1;
import com.demo.buider.itf.MobileBuilderImpl2;
import com.demo.buider.model.MobilePackage;
public class MainApp
{
  /**
   * 主應用程序
   *
   * @param args
   */
  public static void main(String[] args)
  {
    // 創建指導者
    MobileDirector mobileDirector = new MobileDirector();
    // 套餐1
    MobileBuilderImpl1 mobileBuilderImpl1 = new MobileBuilderImpl1();
    // 套餐2
    MobileBuilderImpl2 mobileBuilderImpl2 = new MobileBuilderImpl2();
    printMessage(mobileDirector.createMobilePackage(mobileBuilderImpl1));
    printMessage(mobileDirector.createMobilePackage(mobileBuilderImpl2));
  }
  /**
   * 打印輸出套餐信息
   */
  public static void printMessage(MobilePackage mobilePackage)
  {
    System.out.println("--話費:" + mobilePackage.getMoney() + "\t短信:" + mobilePackage.getShortInfo() + "條\t彩玲:" + mobilePackage.getMusic());
  }
}

運行結果

--話費:20.0短信:400條彩玲:天使
--話費:30.0短信:600條彩玲:大海

三、該模式設汁原則

1 分步驟創建復雜對象
2 構造和表示分離
3 單一職責原則

四、使用場合

1 當生成產品對象內部具有復雜結構時
2 當復雜對象需要與表示分離,可能需要創建不同表示時
3 當需要向客戶隱藏產品內部結構表現時

如何在Java中利用建造者模式實現辦理手機套餐功能

java基本數據類型有哪些

Java的基本數據類型分為:1、整數類型,用來表示整數的數據類型。2、浮點類型,用來表示小數的數據類型。3、字符類型,字符類型的關鍵字是“char”。4、布爾類型,是表示邏輯值的基本數據類型。

以上就是如何在Java中利用建造者模式實現辦理手機套餐功能,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扬中市| 剑川县| 镇雄县| 谷城县| 盈江县| 黄冈市| 赣州市| 松阳县| 连江县| 浑源县| 宕昌县| 广安市| 平邑县| 库伦旗| 乡宁县| 日喀则市| 南部县| 定南县| 察哈| 海盐县| 什邡市| 五大连池市| 紫云| 常熟市| 潜山县| 宁明县| 黄陵县| 嘉兴市| 洪湖市| 北碚区| 岳阳县| 南召县| 德保县| 黄大仙区| 房产| 琼海市| 天长市| 抚宁县| 剑河县| 龙游县| 秀山|