對介面卡模式的思考
介面卡模式(Adapter Pattern)是作為兩個不相容的介面之間的橋樑。就像中美兩國的插頭標準是不一樣的,可以用一個轉接頭來適配。
假設第三方庫有這麼樣的一個類:
class ThirdPartService{
public void run(){
//TODO
}
}
那麼這時候為了統一操作,可以對這個介面進行封裝(適配),
class MyService{
private ThirdPartService thirdPartService;
public void play(){
thirdPartService.run();
}
}
這樣就可以以一個統一的介面來呼叫thirdPartService。
那麼,為什麼要多次一舉?多封裝一層物件來進行適配有什麼好處?
一是我們可以享受到多型的好處,多型的好處在之前的文章以討論過。
二就是降低複雜性,第三方庫的呼叫可能比較複雜,而且不在我們的可控範圍,所以我們使用封裝(適配)能有效避免因為第三方介面變動而帶來程式碼的大面積修改。
相關推薦
對介面卡模式的思考
介面卡模式(Adapter Pattern)是作為兩個不相容的介面之間的橋樑。就像中美兩國的插頭標準是不一樣的,可以用一個轉接頭來適配。 假設第三方庫有這麼樣的一個類: class ThirdPartService{ public void run(){
介面卡模式 對 BaseAdapter 抽取封裝,減少程式碼冗餘。
BaseAdapter 介面卡,是我們經常使用的。可能一個專案中都有十幾甚至幾十個。細心的同學可能會發現,每一個介面卡的結構基本相同,這就讓我們想到了程式碼抽取。 BaseAdater 本身使用的就是介面卡模式。相信大家對這種模式都很瞭解,所以今天就使用介面卡模式對B
對設計模式的總結之簡單工廠與策略模式
mage 建立 不變 href catch nag 實現類 初步 cti 前言 面向對象編程追求的本質-提高擴展性、可維護性、靈活性和復用性。合理利用面向對象6個原則,能夠很好的達到要求。如何利用好就是至關重要的了,前人總結了23+個設計模式能夠讓初學者更容易
C# 設計模式之空對象模式
set *** 實的 中間 man blog mar 對象 同時 最近看了不少的書籍和視頻等相關資料,決定自己邊學習邊寫一下個人對設計模式的理解,如果有不對的請大家多多指正。 今天先說說我個人覺得最簡單的設計模式 -- [空對象模式] 空對象模式可以減少客戶端對對象判
JMS消息隊列ActiveMQ(點對點模式)
jms activemq 消息隊列 生產者(producer)->消息隊列(message queue)package com.java1234.activemq; import javax.jms.Connection; import javax.jms.ConnectionFactor
Java數據訪問對象模式
從數據 查看 pat span add 值對象 結構 object tar 數據訪問對象模式或DAO模式用於將低級數據訪問API或操作與高級業務服務分離。 以下是數據訪問對象模式的參與者。 數據訪問對象接口 - 此接口定義要對模型對象執行的標準操作。 數據訪問對象具
十三、空對象模式
clas author span abs package 數據 dem data obj 空對象模式其實就是定義一個對象用來處理默認的行為,代碼如下: package test; /** * 空對象模式 * @author lay */ public class
我對人性的思考1
身邊 文化 sil 主題 禮貌 最好 看書 開始 技術類 人性的思考---------------給我一個機會還你一個世界,因為金子只會在該發光的地方發光.即使你知道所有的道理,但是你沒有認識到這些道理的真正意義,那一切都是徒勞的,我不能寫出完美的話語讓你們無法反駁我的觀點
行為型模型 空對象模式
str fin bsp ngs main pre urn system 行為 行為型模型 空對象模式 /** * 行為型模型 空對象模式 * 創建一個未對該類做任何實現的空對象類,該空對象類將無縫地使用在需要檢查空值的地方。 * 不要為了屏蔽null而使用空對象
Redis集群~windows下搭建Sentinel環境及它對主從模式的實際意義
sent bsp windows 意義 HR 主從模式 nbsp OS AS Redis集群~windows下搭建Sentinel環境及它對主從模式的實際意義 學習了:https://www.cnblogs.com/lori/p/5825691.html 哨兵機制; Re
Android Camera2 拍照(四)——對焦模式
ask als size com ontouch eating fault tdi release 原文:Android Camera2 拍照(四)——對焦模式 本
【作業4.0】HansBug的第四次面向對象課程思考
src 線程 model 概覽 分享圖片 評測 至少 博客作業 block 嘛。。不知不覺這門課程要結束了,那麽就再說點啥以示慶祝唄。 測試vs正確性論證 說到這個,相比很多人對此其實很有疑惑,請讓我慢慢分析。 邏輯概覽 首先我們來看看兩種方式各自的做法和流程是什麽樣的:
面向對象的思考過程
6.2 1.8 5.1 實現 模型 多態 示例 引用 的區別 第1章 面向對象的概念簡介 1.1 基本概念 1.2 對象及遺留系統 1.3 過程式編程與面向對象編程 1.4 由面向過程開發過渡道面向對象開發 1.4.1 過程式編程 1.4.2
java編程中的異常分析及面向對象的思考總結[圖]
目錄 內部 釋放資源 包括 sta overload 普通 none 命名 java編程中的異常分析及面向對象的思考總結[圖]1.異常:程序中出現的不正常現象。2.異常的由來:程序在運行的過程中出現了不正常的情況,程序把它看成對象提取了屬性行為(名字,原因,位置等信息)形成
JS面向對象之創建對象模式
instance 解釋 prop eat 成了 能夠 一個 無法訪問 說明 雖然Object構造函數或對象字面量都可以用來創建單個對象,但都有一個缺點,使用同一個接口來創建對象,會產生大量重復的代碼,為解決這個問題,引出下列方法 1.工廠模式 抽象了創建具體對象的過程,
23種設計模式---介面卡模式
package com.bjpowernode.demo03; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.Inpu
設計模式的藝術 結構型模式之介面卡模式
不懂使用為學過,說出用途,繪製結構為了解,不會靈活使用基本等於沒學。 前言 有的筆記本工作電壓是20V,而中國家庭用電的電壓是220V,如何讓20V的筆記本在220V的電壓下工作,答案就是進入一個電源介面卡,這樣才能相容,在軟體開發中也有這種不相容的情況,這時候也可以像電源介面卡的方法一樣來
一天一個設計模式:介面卡模式
概念: 介面卡模式是把一個類的介面變成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作。 用途: 就像插頭轉換器,之前入了switch港版,插頭是英式的,還好附贈一個插頭轉換器,介面卡就相當於這個轉換器。 種類: 分為類的介面卡與物件的介面卡兩種
java設計模式4.介面卡模式、裝飾器模式
介面卡模式 把一個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠工作。 1. 類的介面卡模式 目標角色:期望的介面,對於類的介面卡模式,此角色不可以是具體類。 源角色:需要適配的介面。 介面卡角色:把源介面轉換成目標介面,此角色必須是具
結構體記憶體對齊模式
結構體的位元組大小,一個簡單的結構體定義如下,這個結構的大小應是8位元組(32位下) typedef struct MODEL4 { char c; int x; }MODEL4; char的大小是1,而int是4,但總的大小是8,這就是結構體記憶體對齊的原因。在32位的機器上,資料是以