真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java適配器模式應(yīng)用之電源適配器功能的示例分析

這篇文章將為大家詳細(xì)講解有關(guān)Java適配器模式應(yīng)用之電源適配器功能的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕10年,專業(yè)且經(jīng)驗(yàn)豐富。10年網(wǎng)站優(yōu)化營銷經(jīng)驗(yàn),我們已為千余家中小企業(yè)提供了網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)解決方案,按需求定制網(wǎng)站,設(shè)計(jì)滿意,售后服務(wù)無憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!

一、模式定義

存在兩種適配器模式

1 對象適配器模式,在這種適配器模式中,適配器容納一個(gè)它包裹的類對象的物理實(shí)體。

2 類適配器模式,在這種適配器模式中,適配器繼承自已實(shí)現(xiàn)的類。

二、模式舉例

1 模式分析

我們借用筆計(jì)本電源適配器來說明這一模式。

已經(jīng)存在的交流電源
筆記本電腦
電源適配器

Java適配器模式應(yīng)用之電源適配器功能的示例分析

2 適配器模式的靜態(tài)建模

Java適配器模式應(yīng)用之電源適配器功能的示例分析

3 代碼舉例

3.1 抽象電源建立

package com.demo.power;
/**
 * 電源基類
 *
 * @author
 *
 */
public abstract class AbsBasePower
{
  // 電壓值
  private float power;
  // 單位
  private String unit = "V";
  // 構(gòu)造方法
  public AbsBasePower(float power)
  {
    this.power = power;
  }
  public float getPower()
  {
    return power;
  }
  public void setPower(float power)
  {
    this.power = power;
  }
  public String getUnit()
  {
    return unit;
  }
  public void setUnit(String unit)
  {
    this.unit = unit;
  }
}

3.2 220v電源接口

package com.demo.power.v220;
/**
 * 220V 電源接口
 *
 * @author
 *
 */
public interface IPower220 {
  // 220V交流電源打印
  public void output220v();
}

3.3 220v電源實(shí)現(xiàn)類

package com.demo.power.v220;
import com.demo.power.AbsBasePower;
/**
 * 220V電源
 *
 * @author
 *
 */
public class Power220 extends AbsBasePower implements IPower220
{
  // 構(gòu)造方法
  public Power220()
  {
    super(220);
  }
  // 220V電源輸出
  public void output220v()
  {
    System.out.println("----這是[" + this.getPower() + this.getUnit() + "]電源!...");
  }
}

3.4 12v電源接口

package com.demo.power.v12;
/**
 * 12V 電源接口
 *
 * @author
 *
 */
public interface IPower12 {
  // 12V電源打印
  public void output12v();
}

3.5 12v電源實(shí)現(xiàn)類

package com.demo.power.v12;
import com.demo.power.AbsBasePower;
/**
 * 正常的12V電源
 *
 * @author
 *
 */
public class Power12 extends AbsBasePower implements IPower12 {
  // 12V電源構(gòu)造方法
  public Power12() {
    super(12);
  }
  // 12V電源輸出
  public void output12v() {
    System.out.println("----這是[" + this.getPower() + this.getUnit()
        + "]電源!...");
  }
}

3.6  12v電源對象適配器

package com.demo.adapter;
import com.demo.power.AbsBasePower;
import com.demo.power.v12.IPower12;
/**
 * 電源適配器 (實(shí)現(xiàn)目標(biāo)對象接口 即:12V電源接口)
 *
 * @author
 *
 */
public class AdapterPower12 implements IPower12 {
  // 待轉(zhuǎn)換的對象
  private final AbsBasePower absBasePower;
  // 適配器構(gòu)造方法 將待轉(zhuǎn)換對象傳入
  public AdapterPower12(AbsBasePower absBasePower) {
    this.absBasePower = absBasePower;
  }
  // 實(shí)現(xiàn)目標(biāo)對象方法
  public void output12v() {
    // 獲得外部電源值
    float powerFloat = this.absBasePower.getPower();
    // 進(jìn)行電源轉(zhuǎn)換
    if (powerFloat == 380) {
      // 380V電源轉(zhuǎn)換
      powerFloat = powerFloat / 31.67f;
    } else if (powerFloat == 220) {
      // 220V電源轉(zhuǎn)換
      powerFloat = powerFloat / 18.33f;
    } else if (powerFloat == 110) {
      // 110V電源轉(zhuǎn)換
      powerFloat = powerFloat / 9.17f;
    } else {
      System.out.println("----不能適配電源!...");
      return;
    }
    // 處理轉(zhuǎn)換結(jié)果
    powerFloat = (int) (powerFloat * 10) / 10.0f;
    System.out.println("----這是[" + powerFloat + this.absBasePower.getUnit()
        + "]電源!...");
  }
}

3.7  12v電源類適配器

package com.demo.adapter;
import com.demo.power.AbsBasePower;
import com.demo.power.v12.IPower12;
/**
 * 電源適配器 (實(shí)現(xiàn)目標(biāo)對象接口 即:12V電源接口) 類適配器 模式
 *
 * @author
 *
 */
public class AdapterPower12Ext extends AbsBasePower implements IPower12 {
  // 適配器構(gòu)造方法 將待轉(zhuǎn)換對象傳入
  public AdapterPower12Ext(AbsBasePower absBasePower) {
    super(absBasePower.getPower());
  }
  // 實(shí)現(xiàn)目標(biāo)對象方法
  @Override
  public void output12v() {
    // 獲得外部電源值
    float powerFloat = this.getPower();
    // 進(jìn)行電源轉(zhuǎn)換
    if (powerFloat == 380) {
      // 380V電源轉(zhuǎn)換
      powerFloat = powerFloat / 31.67f;
    } else if (powerFloat == 220) {
      // 220V電源轉(zhuǎn)換
      powerFloat = powerFloat / 18.33f;
    } else if (powerFloat == 110) {
      // 110V電源轉(zhuǎn)換
      powerFloat = powerFloat / 9.17f;
    } else {
      System.out.println("----不能適配電源!...");
      return;
    }
    // 處理轉(zhuǎn)換結(jié)果
    powerFloat = (int) (powerFloat * 10) / 10.0f;
    System.out.println("----這是[" + powerFloat + this.getUnit() + "]電源!...");
  }
}

3.8  測試適配器

package com.demo;
import com.demo.adapter.AdapterPower12;
import com.demo.adapter.AdapterPower12Ext;
import com.demo.power.v12.IPower12;
import com.demo.power.v12.Power12;
import com.demo.power.v220.Power220;
/**
 * 客戶端程序調(diào)用
 *
 * @author
 *
 */
public class Client {
  /**
   * @param args
   */
  public static void main(String[] args) {
    // 我們首先 生成一個(gè)220V電源對象!
    Power220 power220 = new Power220();
    power220.output220v();
    // 接下來,我們在生成一個(gè)12V電源對象!
    IPower12 power12 = new Power12();
    power12.output12v();
    // 最后,我們使用電源適配器 將220V電源轉(zhuǎn)換為12V電源!
    System.out.println("\n----電源適配器轉(zhuǎn)換中...");
    IPower12 adapterPower12 = new AdapterPower12(power220);
    adapterPower12.output12v();
    System.out.println("----電源適配器轉(zhuǎn)換結(jié)束!");
    // 類適配器實(shí)現(xiàn)
    System.out.println("\n----類適配器 電源適配器轉(zhuǎn)換中...");
    IPower12 adapterPower12Ext = new AdapterPower12Ext(power220);
    adapterPower12Ext.output12v();
    System.out.println("----類適配器 電源適配器轉(zhuǎn)換結(jié)束!");
  }
}

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

----這是[220.0V]電源!...
----這是[12.0V]電源!...
----電源適配器轉(zhuǎn)換中...
----這是[12.0V]電源!...
----電源適配器轉(zhuǎn)換結(jié)束!
----類適配器 電源適配器轉(zhuǎn)換中...
----這是[12.0V]電源!...
----類適配器 電源適配器轉(zhuǎn)換結(jié)束!

三、設(shè)計(jì)原則

1使用對象組合,面向接口和抽象編程
2“開一閉”原則

四、使用場合

1 軟件系統(tǒng)結(jié)構(gòu)需要升級(jí)或擴(kuò)展,又不想影響原有系統(tǒng)穩(wěn)定運(yùn)行的時(shí)候
2 轉(zhuǎn)換類之間的差別不是很大的時(shí)候
3 想創(chuàng)建一個(gè)可以復(fù)用的類,該類可以與其他不相關(guān)類或不可預(yù)見類協(xié)同工作的時(shí)候

五、類適配器模式和對象適配器模式的靜態(tài)類圖

Java適配器模式應(yīng)用之電源適配器功能的示例分析

關(guān)于“Java適配器模式應(yīng)用之電源適配器功能的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。


網(wǎng)頁標(biāo)題:Java適配器模式應(yīng)用之電源適配器功能的示例分析
本文地址:http://weahome.cn/article/psjpcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部