- Python 設計模式教程
- Python 設計模式 - 首頁
- 介紹
- Python 設計模式 - 要點
- 模型-檢視-控制器模式 (MVC)
- Python 設計模式 - 單例模式
- Python 設計模式 - 工廠模式
- Python 設計模式 - 建造者模式
- Python 設計模式 - 原型模式
- Python 設計模式 - 外觀模式
- Python 設計模式 - 命令模式
- Python 設計模式 - 介面卡模式
- Python 設計模式 - 裝飾器模式
- Python 設計模式 - 代理模式
- 責任鏈模式
- Python 設計模式 - 觀察者模式
- Python 設計模式 - 狀態模式
- Python 設計模式 - 策略模式
- Python 設計模式 - 模板模式
- Python 設計模式 - 享元模式
- 抽象工廠模式
- 面向物件
- 面向物件概念實現
- Python 設計模式 - 迭代器模式
- 字典
- 列表資料結構
- Python 設計模式 - 集合
- Python 設計模式 - 佇列
- 字串與序列化
- Python中的併發
- Python 設計模式 - 反模式
- 異常處理
- Python 設計模式資源
- 快速指南
- Python 設計模式 - 資源
- 討論
Python 設計模式 - 介面卡模式
介面卡模式作為連線兩個不相容介面的橋樑。這種設計模式屬於結構型模式,因為它組合了兩個獨立介面的功能。
此模式涉及單個類,負責連線獨立或不相容介面的功能。現實生活中的例子可能是讀卡器,它充當記憶體卡和筆記型電腦之間的介面卡。您將記憶體卡插入讀卡器,然後將讀卡器插入筆記型電腦,以便可以透過筆記型電腦讀取記憶體卡。
介面卡設計模式有助於使類一起工作。它根據需要將類的介面轉換為另一個介面。該模式包括一個物種多型性,它命名一個名稱和多種形式。例如,形狀類可以根據收集的要求使用。
介面卡模式有兩種型別:
物件介面卡模式
此設計模式依賴於物件實現。因此,它被稱為物件介面卡模式。
類介面卡模式
這是實現介面卡設計模式的另一種方法。可以使用多重繼承來實現此模式。
如何實現介面卡模式?
現在讓我們看看如何實現介面卡模式。
class EuropeanSocketInterface:
def voltage(self): pass
def live(self): pass
def neutral(self): pass
def earth(self): pass
# Adaptee
class Socket(EuropeanSocketInterface):
def voltage(self):
return 230
def live(self):
return 1
def neutral(self):
return -1
def earth(self):
return 0
# Target interface
class USASocketInterface:
def voltage(self): pass
def live(self): pass
def neutral(self): pass
# The Adapter
class Adapter(USASocketInterface):
__socket = None
def __init__(self, socket):
self.__socket = socket
def voltage(self):
return 110
def live(self):
return self.__socket.live()
def neutral(self):
return self.__socket.neutral()
# Client
class ElectricKettle:
__power = None
def __init__(self, power):
self.__power = power
def boil(self):
if self.__power.voltage() > 110:
print "Kettle on fire!"
else:
if self.__power.live() == 1 and \
self.__power.neutral() == -1:
print "Coffee time!"
else:
print "No power."
def main():
# Plug in
socket = Socket()
adapter = Adapter(socket)
kettle = ElectricKettle(adapter)
# Make coffee
kettle.boil()
return 0
if __name__ == "__main__":
main()
輸出
上述程式生成以下輸出:
解釋
程式碼包括具有各種引數和屬性的介面卡介面。它包括Adaptee以及實現所有屬性並顯示輸出為可見的Target介面。
廣告