成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java最優良的Adapter模式:適配器模式

開發 架構 后端
網上關于JAVA的適配器模式例子有很多,但真的有少實在不怎么樣,看也不懂。自己總結了一個在性能和結構上都很容易理解的Adapter模式。

網上關于JAVA的適配器模式例子有很多,但真的有少實在不怎么樣,看也不懂。自己總結了一個在性能和結構上都很容易理解的Adapter模式。

Adapter模式也叫適配器模式,是由GoF提出的23種設計模式的一種。Adapter模式是構造型模式之一,通過Adapter模式,可以改變已有類(或外部類)的接口形式。

在大規模的系統開發過程中,我們常常碰到諸如以下這些情況:

我們需要實現某些功能,這些功能已有還不太成熟的一個或多個外部組件,如果我們自己重新開發這些功能會花費大量時間;所以很多情況下會選擇先暫時使用外部組件,以后再考慮隨時替換。但這樣一來,會帶來一個問題,隨著對外部組件庫的替換,可能需要對引用該外部組件的源代碼進行大面積的修改,因此也極可能引入新的問題等等。如何最大限度的降低修改面呢?

Adapter模式就是針對這種類似需求而提出來的。

Adapter模式通過定義一個新的接口(對要實現的功能加以抽象),和一個實現該接口的Adapter(適配器)類來透明地調用外部組件。這樣替換外部組件時,最多只要修改幾個Adapter類就可以了,其他源代碼都不會受到影響。

實現Adapter模式的2種方法與范例

Adapter模式通過在Adapter類中調用外部組件來實現功能。

根據調用方式的不同,Adapter模式有2種實現方法:

  1. 通過繼承實現Adapter
  2. 通過委讓實現Adapter

為了能更清楚地說明2種實現方法的區別,我們舉例說明:

比如,我們需要實現一個發送郵件的功能,需要用到一個名為OutMailer的外部組件,因為上述原因,我們決定用Adapter模式實現對OutMailer的透明調用。

首先,我們把郵件發送的功能抽象成一個接口:

  1. IMailer.java  
  2. interface IMailer {  
  3.     //發送郵件  
  4.     publicvoid sendMail();  

然后定一個實現IMailer接口的MailerAdapter類。

下面我們來看看MailerAdapter的實現方法。

通過繼承實現Adapter

MailerAdapter.java

  1. class MailerAdapter extends OutMailerimplements IMailer {  
  2.     //發送郵件  
  3.     publicvoid sendMail() {  
  4.         //調用OutMailer.sendMail()方法實現郵件發送  
  5.         this.sendMail();  
  6.     }  
  7.  
  8.     //這里省略其他方法  

通過委讓實現Adapter

MailerAdapter.java

  1. class MailerAdapter implements IMailer {  
  2.     private OutMailer outMailer =new OutMailer();  
  3.     //發送郵件  
  4.     publicvoid sendMail() {  
  5.         //調用OutMailer.sendMail()方法實現郵件發送  
  6.         outMailer.sendMail();  
  7.     }  
  8.  
  9.     //這里省略其他方法  

不管是通過繼承實現Adapter,還是通過委讓實現Adapter,調用方MailerClient的調用方法完全一樣,如下:

MailerClient.java

  1. IMailer mailer =new MailerAdapter();  
  2. ...  
  3. mailer.sendMail(); 

我們可以看到,這里完全沒有直接調用OutMailer,也就是說OutMailer即使被替換了,我們也不用對MailerClient做任何修改。

原文鏈接:http://blog.csdn.net/hjm4702192/article/details/7821325

責任編輯:林師授 來源: hjm4702192的博客
相關推薦

2024-07-31 10:41:16

C#設計模式

2012-05-16 17:22:11

Java設計模式

2020-10-25 08:56:21

適配器模式

2021-02-18 08:39:28

設計模式場景

2013-11-26 16:39:21

Android設計模式

2022-02-13 23:33:24

設計模式Java

2022-02-18 17:21:29

適配器模式客戶端

2024-04-10 12:27:43

Python設計模式開發

2024-02-22 12:13:49

適配器模式代碼

2021-02-16 08:16:09

適配器模式MybatisJava

2009-11-18 18:08:20

PHP適配器模式

2012-04-12 09:33:02

JavaScript

2013-02-26 10:55:47

C#適配器設計模式

2022-12-12 09:20:59

適配器模式接口

2014-12-17 09:57:01

AndroidAdapteViewHolder

2022-05-29 22:55:00

適配器設計模式

2021-08-16 17:15:19

設計模式Android適配器模式

2023-08-15 11:07:37

適配器模式TypeScript

2023-09-06 13:20:00

適配器模式兼容性

2025-06-05 01:45:00

Spring框架適配器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲激精日韩激精欧美精品 | 日本一区二区高清不卡 | 综合第一页| 亚洲精品色 | 中文字幕成人在线 | 国产精品久久久久久妇女 | 国产午夜精品一区二区三区四区 | 成人污污视频 | 国产精品1区 | 精品欧美一区二区三区久久久 | 精品久久99 | 国产乱码精品一区二区三区av | 色婷婷av一区二区三区软件 | 丁香五月网久久综合 | 日韩欧美手机在线 | 狠狠久久综合 | 久久综合一区 | 久久噜| 久久久久亚洲精品中文字幕 | 国产ts人妖系列高潮 | 日韩在线观看一区 | 一级做a爰片久久毛片免费看 | 伊人91在线| 粉嫩高清一区二区三区 | 羞羞的视频免费看 | 成人国产在线视频 | 国产男女猛烈无遮掩视频免费网站 | 在线观看中文字幕av | 国产一伦一伦一伦 | 亚洲视频免费播放 | 国产一区二区在线免费视频 | 国产99久久久国产精品 | 天天操天天干天天爽 | 日本不卡一区二区三区在线观看 | 日韩a| 成人午夜免费视频 | 一级黄色片一级黄色片 | 午夜影院在线免费观看视频 | 亚洲一区二区精品 | 国产二区视频 | gav成人免费播放视频 |