首頁| 新聞| 娛樂| 游戲| 科普| 文學| 編程| 系統| 數據庫| 建站| 學院| 產品| 網管| 維修| 辦公| 熱點
代理通常就是一個介于尋求方和提供方之間的中介系統。其核心思想就是客戶端(尋求方)沒有直接和提供方(真實對象)打交道,而是通過代理對象來完成提供方提供的資源或操作。
代理其實就是封裝實際服務對象的包裝器或代理人。代理可以為其包裝的對象提供附加功能,而無需改變此對象的代碼。代理模式的主要目的是為其他對象提供一個代理者或占位符,從而控制對實際對象的訪問。
三種常見的不同類型或不同應用場景下的代理:
代理模式注意點:
簡單示例:
from abc import ABCMeta, abstractmethodclass HouseOwner(metaclass=ABCMeta): """房主抽象類:都可以將房子出租""" @abstractmethod def rent_house(self, rental): passclass Landlord(HouseOwner): """真實對象:房主""" def __init__(self): self.account = 0 self.house_key = 'house key' def rent_house(self, rental): """收取租金,并房屋鑰匙給出租的人""" self.account += rental return self.house_keyclass HouseAgent: """代理類:中介,代理房東出租他們的房子""" def __init__(self): self.account = 0 self.house_resource = [] # 房源肯定不只一個,這里就只簡單放一個了 self.house_resource.append(Landlord()) # 通常而言,代理類和表示真實對象的類具有相同的接口 # 表示此方法給真實對象某個操作進行的代理操作 def rent_house(self, rental, agency_fee): """收取租金和中介費,并將房子出租給客戶""" self.account += agency_fee house_key = self.house_resource[0].rent_house(rental) return house_keyclass Renter: """客戶端類:租戶""" def __init__(self): self.account = 10000 self.house_key = None self.house_agent = HouseAgent() def find_house(self): """在某一個中介(代理對象)處出租房子""" self.house_key = self.house_agent.rent_house(3000, 1000) print("You've rented a house!")if __name__ == '__main__': renter = Renter() renter.find_house()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網之家。
練就火眼金睛 十一種常見電腦
打印機共享提示“操作無法完成
如何查找有故障的配件
回眸一笑百魅生,六宮粉黛無顏色
歲月靜美,剪一影煙雨江南
蕪湖有個“松鼠小鎮”
小滿:小得盈滿,一切剛剛好!
一串串晶瑩剔透的葡萄,像一顆顆寶石掛在藤
正宗老北京脆皮烤鴨
人逢知己千杯少,喝酒搞笑圖集
搞笑試卷,學生惡搞答題
新聞熱點
疑難解答
圖片精選
Python原始套接字編程實例解析
python使用ctypes調用擴展模塊的實
Python利用Scrapy框架爬取豆瓣電影
vscode如何安裝漢化和Python智能感
網友關注