Python設(shè)計(jì)模式之適配器模式原理與用法詳解
本文實(shí)例講述了Python設(shè)計(jì)模式之適配器模式原理與用法。分享給大家供大家參考,具體如下:
適配器模式(Adapter Pattern):將一個(gè)類的接口轉(zhuǎn)換成為客戶希望的另外一個(gè)接口.
下面是一個(gè)適配器模式的demo:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設(shè)計(jì)模式
設(shè)計(jì)模式——適配器模式
適配器模式(Adapter Pattern):將一個(gè)類的接口轉(zhuǎn)換成為客戶希望的另外一個(gè)接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些類可以一起工作.
應(yīng)用場景:系統(tǒng)數(shù)據(jù)和行為都正確,但接口不符合時(shí),目的是使控制范圍之外的一個(gè)原有對象與某個(gè)接口匹配,適配器模式主要應(yīng)用于希望復(fù)用一些現(xiàn)存的類,但接口又與復(fù)用環(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'
"""
大話設(shè)計(jì)模式
設(shè)計(jì)模式——適配器模式
適配器模式(Adapter Pattern):將一個(gè)類的接口轉(zhuǎn)換成為客戶希望的另外一個(gè)接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些類可以一起工作.
應(yīng)用場景:系統(tǒng)數(shù)據(jù)和行為都正確,但接口不符合時(shí),目的是使控制范圍之外的一個(gè)原有對象與某個(gè)接口匹配,適配器模式主要應(yīng)用于希望復(fù)用一些現(xiàn)存的類,但接口又與復(fù)用環(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()
上面類的設(shè)計(jì)如下圖:

系統(tǒng)數(shù)據(jù)和行為都正確,但接口不符合時(shí),目的是使控制范圍之外的一個(gè)原有對象與某個(gè)接口匹配,適配器模式主要應(yīng)用于希望復(fù)用一些現(xiàn)存的類,但接口又與復(fù)用環(huán)境不一致的情況
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用python-cv2實(shí)現(xiàn)視頻的分解與合成的示例代碼
這篇文章主要介紹了使用python-cv2實(shí)現(xiàn)視頻的分解與合成的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
分布式訓(xùn)練training-operator和pytorch-distributed?RANK變量不統(tǒng)一解決
這篇文章主要介紹了分布式訓(xùn)練training-operator和pytorch-distributed?RANK變量不統(tǒng)一問題的解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
django的autoreload機(jī)制實(shí)現(xiàn)
這篇文章主要介紹了django的autoreload機(jī)制實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作電影影評分析
本文是Python機(jī)器學(xué)習(xí)NLP自然語言處理系列文章,帶大家開啟一段學(xué)習(xí)自然語言處理 (NLP) 的旅程。本篇文章主要學(xué)習(xí)NLP自然語言處理基本操電影影評分析2021-09-09
nginx黑名單和django限速,最簡單的防惡意請求方法分享
今天小編就為大家分享一篇nginx黑名單和django限速,最簡單的防惡意請求方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08

