Python設計模式之適配器模式原理與用法詳解
本文實例講述了Python設計模式之適配器模式原理與用法。分享給大家供大家參考,具體如下:
適配器模式(Adapter Pattern):將一個類的接口轉(zhuǎn)換成為客戶希望的另外一個接口.
下面是一個適配器模式的demo:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——適配器模式
適配器模式(Adapter Pattern):將一個類的接口轉(zhuǎn)換成為客戶希望的另外一個接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些類可以一起工作.
應用場景:系統(tǒng)數(shù)據(jù)和行為都正確,但接口不符合時,目的是使控制范圍之外的一個原有對象與某個接口匹配,適配器模式主要應用于希望復用一些現(xiàn)存的類,但接口又與復用環(huán)境不一致的情況
"""
class Target(object):
def request(self):
print "普通請求"
class Adaptee(object):
def specific_request(self):
print "特殊請求"
class Adapter(Target):
def __init__(self):
self.adaptee = Adaptee()
def request(self):
self.adaptee.specific_request()
if __name__ == "__main__":
target = Adapter()
target.request()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——適配器模式
適配器模式(Adapter Pattern):將一個類的接口轉(zhuǎn)換成為客戶希望的另外一個接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些類可以一起工作.
應用場景:系統(tǒng)數(shù)據(jù)和行為都正確,但接口不符合時,目的是使控制范圍之外的一個原有對象與某個接口匹配,適配器模式主要應用于希望復用一些現(xiàn)存的類,但接口又與復用環(huán)境不一致的情況
"""
class Target(object):
def request(self):
print "普通請求"
class Adaptee(object):
def specific_request(self):
print "特殊請求"
class Adapter(Target):
def __init__(self):
self.adaptee = Adaptee()
def request(self):
self.adaptee.specific_request()
if __name__ == "__main__":
target = Adapter()
target.request()
上面類的設計如下圖:

系統(tǒng)數(shù)據(jù)和行為都正確,但接口不符合時,目的是使控制范圍之外的一個原有對象與某個接口匹配,適配器模式主要應用于希望復用一些現(xiàn)存的類,但接口又與復用環(huán)境不一致的情況
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關(guān)文章
python實現(xiàn)將文件夾內(nèi)的每張圖片批量分割成多張
這篇文章主要為大家詳細介紹了python實現(xiàn)將文件夾內(nèi)的每張圖片批量分割成多張,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
通過LyScript實現(xiàn)從文本中讀寫ShellCode
LyScript 插件通過配合內(nèi)存讀寫,可實現(xiàn)對特定位置的ShellCode代碼的導出。本文將利用這一特性實現(xiàn)從文本中讀寫ShellCode,感興趣的可以了解一下2022-08-08
在ubuntu16.04中將python3設置為默認的命令寫法
這篇文章主要介紹了在ubuntu16.04中將python3設置為默認python的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-10-10

