激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java適配器模式應用之電源適配器功能詳解

Java適配器模式應用之電源適配器功能詳解

2021-04-29 14:48chengqiuming Java教程

這篇文章主要介紹了Java適配器模式應用之電源適配器功能,較為詳細的分析了適配器模式的概念、原理及Java基于適配器模式實現電源適配器功能的相關操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了java適配器模式應用之電源適配器功能。分享給大家供大家參考,具體如下:

一、模式定義

存在兩種適配器模式

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

2 類適配器模式,在這種適配器模式中,適配器繼承自已實現的類。

二、模式舉例

1 模式分析

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

已經存在的交流電源
筆記本電腦
電源適配器

Java適配器模式應用之電源適配器功能詳解

2 適配器模式的靜態建模

Java適配器模式應用之電源適配器功能詳解

3 代碼舉例

3.1 抽象電源建立

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.demo.power;
/**
 * 電源基類
 *
 * @author
 *
 */
public abstract class absbasepower
{
  // 電壓值
  private float power;
  // 單位
  private string unit = "v";
  // 構造方法
  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電源接口

?
1
2
3
4
5
6
7
8
9
10
11
package com.demo.power.v220;
/**
 * 220v 電源接口
 *
 * @author
 *
 */
public interface ipower220 {
  // 220v交流電源打印
  public void output220v();
}

3.3 220v電源實現類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.demo.power.v220;
import com.demo.power.absbasepower;
/**
 * 220v電源
 *
 * @author
 *
 */
public class power220 extends absbasepower implements ipower220
{
  // 構造方法
  public power220()
  {
    super(220);
  }
  // 220v電源輸出
  public void output220v()
  {
    system.out.println("----這是[" + this.getpower() + this.getunit() + "]電源!...");
  }
}

3.4 12v電源接口

?
1
2
3
4
5
6
7
8
9
10
11
package com.demo.power.v12;
/**
 * 12v 電源接口
 *
 * @author
 *
 */
public interface ipower12 {
  // 12v電源打印
  public void output12v();
}

3.5 12v電源實現類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.demo.power.v12;
import com.demo.power.absbasepower;
/**
 * 正常的12v電源
 *
 * @author
 *
 */
public class power12 extends absbasepower implements ipower12 {
  // 12v電源構造方法
  public power12() {
    super(12);
  }
  // 12v電源輸出
  public void output12v() {
    system.out.println("----這是[" + this.getpower() + this.getunit()
        + "]電源!...");
  }
}

3.6  12v電源對象適配器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.demo.adapter;
import com.demo.power.absbasepower;
import com.demo.power.v12.ipower12;
/**
 * 電源適配器 (實現目標對象接口 即:12v電源接口)
 *
 * @author
 *
 */
public class adapterpower12 implements ipower12 {
  // 待轉換的對象
  private final absbasepower absbasepower;
  // 適配器構造方法 將待轉換對象傳入
  public adapterpower12(absbasepower absbasepower) {
    this.absbasepower = absbasepower;
  }
  // 實現目標對象方法
  public void output12v() {
    // 獲得外部電源值
    float powerfloat = this.absbasepower.getpower();
    // 進行電源轉換
    if (powerfloat == 380) {
      // 380v電源轉換
      powerfloat = powerfloat / 31.67f;
    } else if (powerfloat == 220) {
      // 220v電源轉換
      powerfloat = powerfloat / 18.33f;
    } else if (powerfloat == 110) {
      // 110v電源轉換
      powerfloat = powerfloat / 9.17f;
    } else {
      system.out.println("----不能適配電源!...");
      return;
    }
    // 處理轉換結果
    powerfloat = (int) (powerfloat * 10) / 10.0f;
    system.out.println("----這是[" + powerfloat + this.absbasepower.getunit()
        + "]電源!...");
  }
}

3.7  12v電源類適配器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.demo.adapter;
import com.demo.power.absbasepower;
import com.demo.power.v12.ipower12;
/**
 * 電源適配器 (實現目標對象接口 即:12v電源接口) 類適配器 模式
 *
 * @author
 *
 */
public class adapterpower12ext extends absbasepower implements ipower12 {
  // 適配器構造方法 將待轉換對象傳入
  public adapterpower12ext(absbasepower absbasepower) {
    super(absbasepower.getpower());
  }
  // 實現目標對象方法
  @override
  public void output12v() {
    // 獲得外部電源值
    float powerfloat = this.getpower();
    // 進行電源轉換
    if (powerfloat == 380) {
      // 380v電源轉換
      powerfloat = powerfloat / 31.67f;
    } else if (powerfloat == 220) {
      // 220v電源轉換
      powerfloat = powerfloat / 18.33f;
    } else if (powerfloat == 110) {
      // 110v電源轉換
      powerfloat = powerfloat / 9.17f;
    } else {
      system.out.println("----不能適配電源!...");
      return;
    }
    // 處理轉換結果
    powerfloat = (int) (powerfloat * 10) / 10.0f;
    system.out.println("----這是[" + powerfloat + this.getunit() + "]電源!...");
  }
}

3.8  測試適配器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
/**
 * 客戶端程序調用
 *
 * @author
 *
 */
public class client {
  /**
   * @param args
   */
  public static void main(string[] args) {
    // 我們首先 生成一個220v電源對象!
    power220 power220 = new power220();
    power220.output220v();
    // 接下來,我們在生成一個12v電源對象!
    ipower12 power12 = new power12();
    power12.output12v();
    // 最后,我們使用電源適配器 將220v電源轉換為12v電源!
    system.out.println("\n----電源適配器轉換中...");
    ipower12 adapterpower12 = new adapterpower12(power220);
    adapterpower12.output12v();
    system.out.println("----電源適配器轉換結束!");
    // 類適配器實現
    system.out.println("\n----類適配器 電源適配器轉換中...");
    ipower12 adapterpower12ext = new adapterpower12ext(power220);
    adapterpower12ext.output12v();
    system.out.println("----類適配器 電源適配器轉換結束!");
  }
}

3.9 運行結果

----這是[220.0v]電源!...
----這是[12.0v]電源!...
----電源適配器轉換中...
----這是[12.0v]電源!...
----電源適配器轉換結束!
----類適配器 電源適配器轉換中...
----這是[12.0v]電源!...
----類適配器 電源適配器轉換結束!

三、設計原則

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

四、使用場合

1 軟件系統結構需要升級或擴展,又不想影響原有系統穩定運行的時候
2 轉換類之間的差別不是很大的時候
3 想創建一個可以復用的類,該類可以與其他不相關類或不可預見類協同工作的時候

五、類適配器模式和對象適配器模式的靜態類圖

Java適配器模式應用之電源適配器功能詳解

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

原文鏈接:https://blog.csdn.net/chengqiuming/article/details/70140542

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一级免费毛片 | 国产精选在线 | 视频一区二区在线播放 | 国产亚洲黑人性受xxxx精品 | 黄色片视频在线观看 | 免费在线观看毛片视频 | 国产精品免费看 | 国产好片无限资源 | 日韩激情 | 精品免费久久 | 中文字幕国产欧美 | 国产精品久久久久久模特 | 成人毛片免费看 | 成人mm视频在线观看 | 亚州综合图片 | 成人福利在线观看 | 精品一区二区三区中文字幕老牛 | 成人观看网站 | 成人一级黄色大片 | 中午日产幕无线码1区 | 色综合一区二区 | 久久草在线视频 | 日韩999| 免费在线观看中文字幕 | 国产一区二区免费在线观看视频 | 国产精品成人免费一区久久羞羞 | 九九视频精品在线 | 九九黄色| 大西瓜永久免费av在线 | 女人a级毛片 | 日韩电影视频 | 日韩精品一区二区三区中文 | 国产精品一区2区3区 | 久久久久亚洲a | 国产一区二区在线免费播放 | 国产一级二级在线播放 | 一级大片视频 | 性感美女一级毛片 | 性少妇videosexfreexxx片 | 无码专区aaaaaa免费视频 | 91av爱爱 |