日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【Python】Python语言学习:设计模式、单例模式

發(fā)布時(shí)間:2025/3/12 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】Python语言学习:设计模式、单例模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

01

設(shè)計(jì)模式

1.1 設(shè)計(jì)模式簡(jiǎn)介

設(shè)計(jì)模式是解決特定問(wèn)題的解決方案

設(shè)計(jì)模式的優(yōu)點(diǎn)

  • 1 可以在多個(gè)項(xiàng)目重復(fù)使用。

  • 2 問(wèn)題可以在架構(gòu)級(jí)別來(lái)解決。

  • 3 經(jīng)過(guò)了時(shí)間的驗(yàn)證和良好的證明,是開(kāi)發(fā)人員和架構(gòu)師的寶貴經(jīng)驗(yàn)。

  • 4 具有可靠性和依賴性。

為了更好地認(rèn)識(shí)設(shè)計(jì)模式,我們先理解這些術(shù)語(yǔ)。

  • 1 代碼段:用某種語(yǔ)言編寫(xiě)的一段具有特定用途的代碼。例如,Python語(yǔ)言鏈接數(shù)據(jù)庫(kù)的代碼段。

  • 2 設(shè)計(jì):用來(lái)解決特定問(wèn)題的優(yōu)秀解決方案。

  • 3 標(biāo)準(zhǔn):一種解決某類(lèi)問(wèn)題的方法,非常通用,并且適用于當(dāng)前的情況。

  • 4 模式:一個(gè)經(jīng)過(guò)時(shí)間考驗(yàn)的、高效、可擴(kuò)展的解決方案,能夠解決一類(lèi)已知問(wèn)題。

1.2 設(shè)計(jì)模式分類(lèi)

GoF在他們的設(shè)計(jì)模式書(shū)籍《Design Patterns: Elements of Reusable Object-Oriented Software》中講到了23種設(shè)計(jì)模式,分為三類(lèi)。

  • 1 創(chuàng)建型模式

  • 2 結(jié)構(gòu)型模式

  • 3 行為型模式

模式的分類(lèi)主要基于對(duì)象的創(chuàng)建、軟件應(yīng)用程序中類(lèi)和對(duì)象的構(gòu)造方式,還涉及對(duì)象之間的交互方式。

創(chuàng)建型模式的性質(zhì)。

  • 1 它們的運(yùn)行機(jī)制基于對(duì)象的創(chuàng)建方式。

  • 2 它們將對(duì)象創(chuàng)建的細(xì)節(jié)隔離開(kāi)來(lái)。

  • 3 代碼與所創(chuàng)建的對(duì)象類(lèi)型無(wú)關(guān)。
    單例模式就是創(chuàng)建型模式的一個(gè)例子。

結(jié)構(gòu)型模式的性質(zhì)。

  • 1 致力于設(shè)計(jì)出通過(guò)組合獲得更強(qiáng)大功能的對(duì)象和類(lèi)的結(jié)構(gòu)。

  • 2 重點(diǎn)是簡(jiǎn)化結(jié)構(gòu)并識(shí)別類(lèi)和對(duì)象之間的關(guān)系。

  • 3 它們主要關(guān)注類(lèi)的繼承和組合。
    適配器模式就是結(jié)構(gòu)型模式的一個(gè)例子。

行為型模式的性質(zhì)。

  • 1 關(guān)注對(duì)象之間的交互以及對(duì)象的響應(yīng)性。

  • 2 對(duì)象應(yīng)該能夠交互,同時(shí)仍然保持松散耦合。

設(shè)計(jì)模式的學(xué)習(xí)和理解,需要我們對(duì)面向?qū)ο缶幊蘋(píng)OP有一定的認(rèn)識(shí)。
Python語(yǔ)言學(xué)習(xí):面向?qū)ο缶幊?/strong>,這篇文章介紹OOP的基本知識(shí)。

1.3 面向?qū)ο笤O(shè)計(jì)原則

面向?qū)ο笤O(shè)計(jì)原則,有利于我們深入學(xué)習(xí)和理解設(shè)計(jì)模式。遵循和應(yīng)用好這些原則,可以讓我們軟件架構(gòu)、設(shè)計(jì)和實(shí)現(xiàn)更健壯、穩(wěn)定、靈活、強(qiáng)大。

1 開(kāi)放/封閉原則

開(kāi)放/封閉原則,類(lèi)和對(duì)象及其方法對(duì)于擴(kuò)展來(lái)說(shuō),是開(kāi)放的;對(duì)于修改來(lái)說(shuō),是要封閉的。
這個(gè)原則的優(yōu)點(diǎn)。

  • 1 現(xiàn)有的類(lèi)不會(huì)被修改,因此退化的可能性較小。

  • 2 有助于保持以前代碼的向后兼容性。

2 控制反轉(zhuǎn)原則

控制反轉(zhuǎn)原則,高層級(jí)的模塊不應(yīng)該依賴于低層級(jí)的模塊,它們應(yīng)該依賴于抽象。任何兩個(gè)模塊都不應(yīng)以緊密的方式相互依賴。
這個(gè)原則的優(yōu)點(diǎn)。

  • 1 消弱了模塊間的緊耦合,因此消除了系統(tǒng)中的復(fù)雜性。

  • 2 由于依賴模塊之間有一個(gè)明確的抽象層(由鉤子或參數(shù)提供),因此便于通過(guò)更好的方式處理模塊之間的依賴關(guān)系。

3 接口隔離原則

接口隔離原則,客戶端不應(yīng)該依賴于它們不需要使用的接口。
這個(gè)原則的優(yōu)點(diǎn)。

  • 1 它強(qiáng)制開(kāi)發(fā)人員編寫(xiě)瘦身型接口,并使方法與接口緊密無(wú)關(guān)。

  • 2 防止向接口中隨意填寫(xiě)方法。

4 單一職責(zé)原則

單一職責(zé)原則,類(lèi)的職責(zé)單一,引起類(lèi)變化的原因單一。
這個(gè)原則的優(yōu)點(diǎn)。

  • 1 每當(dāng)一個(gè)功能發(fā)生變化時(shí),除了特定類(lèi)需要改變外,其他類(lèi)無(wú)需變動(dòng)。

  • 2 如果一個(gè)類(lèi)有多種功能,那么依賴它的類(lèi)必定會(huì)由于多種原因而經(jīng)歷多次修改,這是應(yīng)該避免的。

5 替換原則

替換原則,派生類(lèi)必須能夠完全取代基類(lèi)。

02

單例設(shè)計(jì)模式

單例設(shè)計(jì)模式是最簡(jiǎn)單和最著名的一種創(chuàng)建型設(shè)計(jì)模式

單例設(shè)計(jì)模式意圖

  • 1 確保類(lèi)有且只有一個(gè)對(duì)象被創(chuàng)建。

  • 2 為對(duì)象提供一個(gè)訪問(wèn)點(diǎn),以使程序可以全局訪問(wèn)對(duì)象。

  • 3 控制共享資源的并行訪問(wèn)。

單例設(shè)計(jì)模式應(yīng)用場(chǎng)景

  • 1 打印機(jī)后臺(tái)處理程序

  • 2 數(shù)據(jù)庫(kù)操作程序
    等等。

單例模式參考代碼。

class?Singleton(object):def?__new__(cls,?*args,?**kwargs):if?not?hasattr(cls,?"instance"):cls.instance?=?super().__new__(cls)return?cls.instances?=?Singleton() print("Object?created",?s)s1?=?Singleton() print("Object?created",?s1)

運(yùn)行結(jié)果

往期精彩回顧適合初學(xué)者入門(mén)人工智能的路線及資料下載(圖文+視頻)機(jī)器學(xué)習(xí)入門(mén)系列下載中國(guó)大學(xué)慕課《機(jī)器學(xué)習(xí)》(黃海廣主講)機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專(zhuān)輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)交流qq群955171419,加入微信群請(qǐng)掃碼:

總結(jié)

以上是生活随笔為你收集整理的【Python】Python语言学习:设计模式、单例模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。