日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Python實現策略模式、觀察者模式和責任鏈模式

來源: 責編: 時間:2024-06-05 17:44:00 197觀看
導讀今天我們將介紹三種行為型設計模式:策略模式、觀察者模式和責任鏈模式。1.策略模式策略模式是一種行為設計模式,它允許在運行時選擇算法的行為。它將算法封裝在獨立的策略類中,使得它們可以互相替換,而不會影響到客戶端代

今天我們將介紹三種行為型設計模式:策略模式、觀察者模式和責任鏈模式。Cg728資訊網——每日最新資訊28at.com

Cg728資訊網——每日最新資訊28at.com

1.策略模式

策略模式是一種行為設計模式,它允許在運行時選擇算法的行為。它將算法封裝在獨立的策略類中,使得它們可以互相替換,而不會影響到客戶端代碼。在Python中,我們可以使用函數或者類來實現策略模式。Cg728資訊網——每日最新資訊28at.com

(1) 策略模式的結構Cg728資訊網——每日最新資訊28at.com

策略模式的核心是定義一個策略接口,所有的具體策略都要實現這個接口。然后,我們可以在客戶端代碼中使用策略對象,而不需要關心具體的實現細節。Cg728資訊網——每日最新資訊28at.com

以下是策略模式的基本結構:Cg728資訊網——每日最新資訊28at.com

# 策略接口class Strategy:    def do_operation(self):        pass# 具體策略類class ConcreteStrategyA(Strategy):    def do_operation(self):        print("執行策略A的操作")class ConcreteStrategyB(Strategy):    def do_operation(self):        print("執行策略B的操作")# 上下文類class Context:    def __init__(self, strategy):        self.strategy = strategy    def execute_strategy(self):        self.strategy.do_operation()# 客戶端代碼if __name__ == "__main__":    strategy_a = ConcreteStrategyA()    strategy_b = ConcreteStrategyB()    context = Context(strategy_a)    context.execute_strategy()    context.strategy = strategy_b    context.execute_strategy()

(2) 策略模式的應用場景Cg728資訊網——每日最新資訊28at.com

策略模式適用于以下場景:Cg728資訊網——每日最新資訊28at.com

  • 當一個系統有多個算法,并且需要在運行時根據不同情況選擇其中一個算法時。
  • 當一個類有多個行為,并且這些行為可以通過繼承來擴展時。
  • 當一個類的行為在運行時可以動態改變時。

(3) 策略模式的優點Cg728資訊網——每日最新資訊28at.com

  • 策略模式將算法的實現與使用算法的客戶端代碼分離,使得它們可以獨立地變化。
  • 策略模式遵循開閉原則,新的策略可以很容易地添加到系統中,而不會影響到原有的代碼。

(4) 策略模式的缺點Cg728資訊網——每日最新資訊28at.com

  • 策略模式增加了系統中類的數量,增加了代碼的復雜度。
  • 客戶端需要了解所有的策略類,才能選擇合適的策略。

2.觀察者模式

它定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽一個主題對象。當主題對象的狀態發生變化時,它會通知所有的觀察者對象,使得它們能夠自動更新。Cg728資訊網——每日最新資訊28at.com

(1) 觀察者模式的結構Cg728資訊網——每日最新資訊28at.com

觀察者模式的核心是主題對象和觀察者對象之間的關系。主題對象維護一個觀察者列表,當主題對象的狀態發生變化時,它會遍歷觀察者列表,通知每個觀察者對象進行更新。Cg728資訊網——每日最新資訊28at.com

以下是觀察者模式的基本結構:Cg728資訊網——每日最新資訊28at.com

# 主題接口class Subject:    def attach(self, observer):        pass    def detach(self, observer):        pass    def notify(self):        pass# 具體主題類class ConcreteSubject(Subject):    def __init__(self):        self.observers = []    def attach(self, observer):        self.observers.append(observer)    def detach(self, observer):        self.observers.remove(observer)    def notify(self):        for observer in self.observers:            observer.update()# 觀察者接口class Observer:    def update(self):        pass# 具體觀察者類class ConcreteObserverA(Observer):    def update(self):        print("觀察者A收到通知")class ConcreteObserverB(Observer):    def update(self):        print("觀察者B收到通知")# 客戶端代碼if __name__ == "__main__":    subject = ConcreteSubject()    observer_a = ConcreteObserverA()    observer_b = ConcreteObserverB()    subject.attach(observer_a)    subject.attach(observer_b)    subject.notify()    subject.detach(observer_b)    subject.notify()

(2) 觀察者模式的應用場景Cg728資訊網——每日最新資訊28at.com

觀察者模式適用于以下場景:Cg728資訊網——每日最新資訊28at.com

  • 當一個對象的改變需要同時改變其他對象時。
  • 當一個對象的改變需要通知一組對象時。
  • 當一個對象的改變需要讓其他對象自動更新時。

(3) 觀察者模式的優點Cg728資訊網——每日最新資訊28at.com

  • 觀察者模式將主題對象和觀察者對象解耦,使得它們可以獨立地變化。
  • 觀察者模式遵循開閉原則,新的觀察者可以很容易地添加到系統中,而不會影響到原有的代碼。

(4) 觀察者模式的缺點Cg728資訊網——每日最新資訊28at.com

  • 觀察者模式可能會導致系統中觀察者對象過多,增加了代碼的復雜度。
  • 觀察者模式中,觀察者對象與主題對象之間存在循環依賴的關系,可能會導致循環引用的問題。

3.責任鏈模式

它將請求的發送者和接收者解耦,使得多個對象都有機會處理請求。將這些對象串成一條鏈,并沿著這條鏈傳遞請求,直到有一個對象能夠處理它為止。Cg728資訊網——每日最新資訊28at.com

(1) 責任鏈模式的結構Cg728資訊網——每日最新資訊28at.com

責任鏈模式的核心是責任鏈對象和處理對象之間的關系。責任鏈對象維護一個處理對象列表,當收到請求時,它會遍歷處理對象列表,直到找到能夠處理請求的對象。Cg728資訊網——每日最新資訊28at.com

以下是責任鏈模式的基本結構:Cg728資訊網——每日最新資訊28at.com

# 處理對象接口class Handler:    def set_successor(self, successor):        pass    def handle_request(self, request):        pass# 具體處理對象類class ConcreteHandlerA(Handler):    def __init__(self):        self.successor = None    def set_successor(self, successor):        self.successor = successor    def handle_request(self, request):        if request == "A":            print("處理對象A處理請求")        elif self.successor is not None:            self.successor.handle_request(request)class ConcreteHandlerB(Handler):    def __init__(self):        self.successor = None    def set_successor(self, successor):        self.successor = successor    def handle_request(self, request):        if request == "B":            print("處理對象B處理請求")        elif self.successor is not None:            self.successor.handle_request(request)# 客戶端代碼if __name__ == "__main__":    handler_a = ConcreteHandlerA()    handler_b = ConcreteHandlerB()    handler_a.set_successor(handler_b)    handler_a.handle_request("A")    handler_a.handle_request("B")    handler_a.handle_request("C")

(2) 責任鏈模式的應用場景Cg728資訊網——每日最新資訊28at.com

責任鏈模式適用于以下場景:Cg728資訊網——每日最新資訊28at.com

  • 多個對象可以處理同一個請求,但具體由哪個對象處理是在運行時動態決定的。
  • 需要將請求的發送者和接收者解耦,使得多個對象都有機會處理請求。

(3) 責任鏈模式的優點Cg728資訊網——每日最新資訊28at.com

  • 責任鏈模式將請求的發送者和接收者解耦,使得它們可以獨立地變化。
  • 責任鏈模式遵循開閉原則,新的處理對象可以很容易地添加到系統中,而不會影響到原有的代碼。

(4) 責任鏈模式的缺點Cg728資訊網——每日最新資訊28at.com

  • 責任鏈模式中,請求可能會在責任鏈上被多次處理,可能會導致性能問題。

本文鏈接:http://m.www897cc.com/showinfo-26-92133-0.htmlPython實現策略模式、觀察者模式和責任鏈模式

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C# 異常處理:每個 .NET 開發者都應掌握的核心知識點

下一篇: 實用 Python:文件與目錄管理的 17 個技巧

標簽:
  • 熱門焦點
  • 8月總票房已突破10億!《封神》第一:口碑已經成了

    8月5日消息,據燈塔專業版數據,截至8月5日9時35分,8月總票房(含預售)已突破10億。其中,《封神》以大比分的優勢領先。根據官方消息,目前該片總票房已經超過14.
  • CSS單標簽實現轉轉logo

    轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。新logo
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力?! RM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度?! RM軟件市場規模如今超過580
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的“征求意見版”:1、取消P序列
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預測小
  • 支持aptX Lossless無損傳輸 iQOO TWS 1賽道版發布限時優惠價369元

    2023年7月4日,“無損音質,聲動人心”iQOO TWS 1正式發布,支持aptX Lossless無損傳輸,限時優惠價369元。iQOO TWS 1耳機率先支持端到端aptX Lossless無
  • 英特爾Xe HPG游戲顯卡:擁有512EU,單風扇版本

    據10 月 30 日外媒 TheVerge 消息報道,英特爾 Xe HPG Arc Alchemist 的正面實被曝光,不僅擁有 512 EU 版顯卡,還擁有 128EU 的單風扇版本。另外,這款顯卡 PCB
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
一本色道**综合亚洲精品蜜桃冫| 国产在线高清精品| 欧美久色视频| 国产精品高潮呻吟久久| 国产麻豆9l精品三级站| 狠狠色狠狠色综合日日tαg| 亚洲激情综合| 亚洲欧美日韩精品| 开心色5月久久精品| 欧美日本亚洲| 国产午夜精品全部视频在线播放| 在线观看一区| 亚洲影视在线播放| 卡一卡二国产精品| 欧美日韩一区在线观看| 国产一区二区三区四区三区四| 91久久久久久久久久久久久| 亚洲一区二区三区国产| 久久久久9999亚洲精品| 欧美性事免费在线观看| 伊人久久大香线蕉av超碰演员| 一区二区三区成人| 久久蜜臀精品av| 国产精品xvideos88| 伊人色综合久久天天| 亚洲在线一区| 欧美激情影院| 国产亚洲欧美在线| 亚洲视频 欧洲视频| 美日韩精品视频| 国产欧美日韩三级| 日韩小视频在线观看| 久久精品综合一区| 欧美午夜精品一区二区三区| 在线观看视频欧美| 欧美影院成人| 国产精品高潮呻吟久久av无限| 亚洲第一区中文99精品| 欧美一级一区| 欧美视频在线播放| 亚洲青色在线| 久久久久久久性| 国产精品影音先锋| 一本色道久久88亚洲综合88| 六十路精品视频| 国产一区二区精品在线观看| 亚洲婷婷国产精品电影人久久| 欧美a一区二区| 狠狠色噜噜狠狠色综合久| 亚洲欧美日本国产专区一区| 欧美母乳在线| 亚洲激情一区| 免费不卡视频| 黄色精品在线看| 欧美一区激情视频在线观看| 欧美性猛交xxxx乱大交蜜桃| 亚洲乱码国产乱码精品精可以看 | 欧美亚洲不卡| 亚洲精选91| 免费观看不卡av| 狠狠爱www人成狠狠爱综合网| 亚洲在线观看| 欧美视频在线观看视频极品| 日韩手机在线导航| 欧美剧在线免费观看网站| 亚洲国产午夜| 久久综合网hezyo| 黄色精品一二区| 久久免费少妇高潮久久精品99| 国产日韩专区在线| 午夜视频一区二区| 国产精品女主播在线观看| 亚洲婷婷综合色高清在线| 欧美日韩国产色综合一二三四| 亚洲人成精品久久久久| 欧美成人一品| 亚洲精品日韩激情在线电影| 欧美极品在线视频| 日韩午夜电影在线观看| 欧美日韩国产区一| 一区二区激情| 国产精品久久久一本精品| 亚洲自拍电影| 国产精品社区| 欧美一区二区三区在线| 国产亚洲福利| 久久久午夜电影| 亚洲大片精品永久免费| 久久综合婷婷| 91久久久久久| 欧美日韩精品久久久| 一区二区高清在线| 国产精品视频福利| 久久成人免费日本黄色| 激情成人在线视频| 欧美freesex8一10精品| 99re热这里只有精品视频| 欧美视频在线观看| 欧美一级日韩一级| **网站欧美大片在线观看| 欧美激情精品久久久久久蜜臀| 亚洲精品中文字幕有码专区| 国产精品99一区二区| 午夜日韩视频| 悠悠资源网久久精品| 欧美国产日韩xxxxx| 一区二区三区四区蜜桃| 国产乱码精品一区二区三区av| 久久精品夜色噜噜亚洲a∨| 亚洲福利在线观看| 欧美日韩综合网| 欧美一区二区大片| 亚洲国产日韩欧美在线99| 欧美日韩一区三区四区| 欧美呦呦网站| 亚洲欧洲日本专区| 国产精品视频xxxx| 免费高清在线一区| 亚洲一区二区三区色| 黑人巨大精品欧美一区二区 | 欧美电影在线观看完整版| 久久男人av资源网站| 亚洲经典在线| 国产精品久久久久影院亚瑟| 久久久xxx| 99re6热只有精品免费观看| 国产精品久久午夜| 久久综合中文字幕| 亚洲色诱最新| 狠狠色噜噜狠狠色综合久| 欧美日韩国产a| 欧美综合二区| 99天天综合性| 国产综合视频在线观看| 欧美精品一区二区蜜臀亚洲| 午夜精品成人在线| 亚洲精品四区| 国产一区二区三区在线播放免费观看| 欧美粗暴jizz性欧美20| 欧美一区在线直播| 99视频精品全部免费在线| 国产一区香蕉久久| 欧美三级视频在线| 美女日韩欧美| 欧美一级久久久| 99热这里只有成人精品国产| 国语自产精品视频在线看抢先版结局 | 欧美在线观看一区二区三区| 亚洲人成亚洲人成在线观看图片 | 国产精品黄色| 欧美成人午夜激情在线| 午夜欧美大尺度福利影院在线看| 亚洲国产毛片完整版| 国产婷婷色一区二区三区| 欧美人与禽性xxxxx杂性| 久久综合色婷婷| 亚洲伊人第一页| 亚洲精品在线电影| 韩曰欧美视频免费观看| 国产精品一区亚洲| 欧美日韩视频第一区| 美女图片一区二区| 久久国产黑丝| 亚洲欧美日韩综合| aa亚洲婷婷| 亚洲人久久久| 黄色亚洲大片免费在线观看| 国产精品日本一区二区 | 国产精品美女999| 欧美连裤袜在线视频| 久久婷婷久久| 欧美一区二区三区免费观看视频| 一本大道久久a久久综合婷婷| 在线成人欧美| 国内精品国语自产拍在线观看| 国产精品视频久久久| 欧美日韩一区二区欧美激情 | 欧美高清视频一区二区| 久久香蕉国产线看观看网| 欧美中文在线视频| 午夜久久tv| 亚洲女性裸体视频| 亚洲在线视频免费观看| 中文网丁香综合网| 亚洲最新视频在线| 亚洲免费成人av电影| 亚洲激情电影中文字幕| 亚洲成在线观看| 在线成人激情| 在线精品视频免费观看| 极品日韩久久| 一区久久精品| 在线看欧美日韩| 在线观看日韩www视频免费| 狠狠综合久久av一区二区小说 | 亚洲欧美激情一区二区| 亚洲午夜精品17c| 亚洲一区二区三区四区视频| 一区二区三区四区五区精品视频| 亚洲美女av网站| 日韩午夜免费视频| 亚洲视频欧美在线| 亚洲一区二区三区涩| 亚洲永久免费视频|