當前位置:主頁 > 名人 > 網紅 > 正文

適配器模式的本質及分類_4

未知 2019-11-21 15:05

  什么是適配器

適配器模式的本質及分類

  在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已存在的類中。

涩情五月  適配器模式所涉及的角色有:

  ●  目標(Target)角色:這就是所期待得到的接口。注意:由于這里討論的是類適配器模式,因此目標不可以是類。

涩情五月  ●  源(Adapee)角色:現在需要適配的接口。

  ●  適配器(Adaper)角色:適配器類是本模式的核心。適配器把源接口轉換成目標接口。顯然,這一角色不可以是接口,而必須是具體類。

  適配器模式的本質

適配器模式的本質及分類

涩情五月  適配器模式的本質是:轉換匹配,復用功能。

涩情五月  適配器通過轉換調用已有的實現,從而能把已有的實現匹配成需要的接口,使之能滿足客戶端的需要。也就是說轉換匹配是手段,而復用已有的功能才是目的。

涩情五月  在進行轉換匹配的過程中,適配器還可以在轉換調用的前后實現一些功能處理,也就是實現智能的適配。

  適配器的分類

  共有兩類適配器模式:

  類適配器模式-- 這種適配器模式下,適配器繼承自已實現的類(一般多重繼承)。

類適配器模式

涩情五月  1. 用一個具體的Adapter類對Adaptee和Taget進行匹配。結果是當我們想要匹配一個類以及所有它的子類時,類Adapter將不能勝任工作。

涩情五月  2. 使得Adapter可以override(重定義) Adaptee的部分行為,因為Adapter是Adaptee的一個子類。

  對象適配器模式-- 在這種適配器模式中,適配器容納一個它包裹的類的實例。在這種情況下,適配器調用被包裹對象的物理實體。

適配器模式的本質及分類

涩情五月  1. 允許一個Adapter與多個Adaptee,即Adaptee本身以及它的所有子類(如果有子類的話)同時工作。Adapter也可以一次給所有的Adaptee添加功能。

  2. 使得override(重定義)Adaptee的行為比較困難。如果一定要override Adaptee的方法,就只好先做一個Adaptee的子類以override Adaptee的方法,然后再把這個子類當作真正的Adaptee源進行適配。

  接口的適配器模式--當不希望實現一個接口中所有的方法時,可以創建一個抽象類Wrapper,實現所有方法,我們寫別的類的時候,繼承抽象類即可。

  什么時候使用適配器?

類適配器模式

  適配器模式并不是一個經常使用的設計模式,以下幾種情況需要使用適配器

  1、系統需要使用現有的類,而此類的接口不符合系統的需要。

涩情五月  2、想要建立一個可以重復使用的類,用于與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作,這些源類不一定有一致的接口。

  3、通過接口轉換,將一個類插入另一個類系中。(比如老虎和飛禽,現在多了一個飛虎,在不增加實體的需求下,增加一個適配器,在里面包容一個虎對象,實現飛的接口。)

  過多的使用適配器,會讓系統非常零亂,不容易整體進行把握 比如:明明看到調用的是A接口,其實內部被適配成了B接口來實現,一個系統如果太多這種情況,無異于一場災難。因此如果不是很有必要,可以不使用適配器,而是直接對系統進行重構。

標簽