設(shè)計(jì)模式大家一定很熟悉,它是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式可以使代碼更容易被他人理解,并保證代碼的可靠性,而設(shè)計(jì)模式的使用也需要遵循一定的原則,那么什么是Python設(shè)計(jì)模式呢?讓我們來(lái)看看。
Python設(shè)計(jì)模式主要分為三類(lèi):創(chuàng)建模式、結(jié)構(gòu)模式和行為模式;這三類(lèi)進(jìn)一步細(xì)分為23種設(shè)計(jì)模式,以下是比較常見(jiàn)的幾種。
單例模式:這是一種常用的軟件設(shè)計(jì)模式,這種模式的主要目的是確保某個(gè)類(lèi)只存在一個(gè)實(shí)例。當(dāng)你想在整個(gè)系統(tǒng)中只有某個(gè)類(lèi)的一個(gè)實(shí)例時(shí),單例對(duì)象可以派上用場(chǎng)。單例對(duì)象主要有三點(diǎn):一是某個(gè)類(lèi)只能有一個(gè)實(shí)例;二是它必須自己創(chuàng)建整個(gè)實(shí)例,三是它必須自己將這個(gè)實(shí)例提供給整個(gè)系統(tǒng)。
工廠模型:提供創(chuàng)建對(duì)象的接口,不像客戶端暴露創(chuàng)建對(duì)象的過(guò)程,使用通用接口創(chuàng)建對(duì)象可以分為簡(jiǎn)單工廠、工廠方法和抽象工廠三種。類(lèi)的行為或其算法可以在運(yùn)行時(shí)更改,這種類(lèi)型的設(shè)計(jì)模式是一種行為模式。
策略模式:它是指定義一系列算法,并將每個(gè)算法封裝起來(lái),使它們可以互換。策略模型允許算法獨(dú)立于使用它的客戶而改變,換句話說(shuō),就是為一個(gè)問(wèn)題定義一個(gè)解決方案模板,這個(gè)模板是一個(gè)特定的策略。每個(gè)策略都是根據(jù)這個(gè)模板執(zhí)行的。在這種情況下,當(dāng)我們有新的策略時(shí),我們可以直接跟進(jìn),在不影響先前定義的策略的情況下寫(xiě)入模板。
門(mén)面模式:門(mén)面模式也稱(chēng)為外觀模式,它的定義是要求一個(gè)子系統(tǒng)的外部與其內(nèi)部之間的通信必須通過(guò)一個(gè)統(tǒng)一的對(duì)象來(lái)進(jìn)行。門(mén)面模式提供高級(jí)接口,使子系統(tǒng)更易于使用。門(mén)面模式側(cè)重于一個(gè)統(tǒng)一的對(duì)象,即提供訪問(wèn)子系統(tǒng)的接口。門(mén)面模式與模板模式有相似之處,兩者都封裝了一些需要重復(fù)的方法,但本質(zhì)是不同的。模板模式是類(lèi)本身的方法的封裝,封裝的方法也可以單獨(dú)使用;門(mén)面模式是對(duì)子系統(tǒng)的封裝,封裝的接口理論上不是孤立使用的。
如果你對(duì)Python感興趣,就來(lái)千鋒教育吧!Python培訓(xùn)采用線上線下相結(jié)合的方式,科學(xué)的教學(xué)方式,無(wú)論學(xué)生選擇哪種教學(xué)方式,都能學(xué)到真正的知識(shí)!