創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、莊浪ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的莊浪網(wǎng)站制作公司這篇文章將為大家詳細(xì)講解有關(guān)python有哪幾種常用的設(shè)計(jì)模式,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
python常用的幾種設(shè)計(jì)模式有:1、單例模式,確保某一個(gè)類只有一個(gè)實(shí)例;2、工廠模式,使用一個(gè)公共的接口來(lái)創(chuàng)建對(duì)象;3、策略模式,隨著策略對(duì)象改變內(nèi)容;4、門面模式,對(duì)子系統(tǒng)的封裝,使得封裝接口不會(huì)被單獨(dú)提出來(lái)。
什么是設(shè)計(jì)模式?
設(shè)計(jì)模式是一套被反復(fù)使用,多數(shù)人知道,經(jīng)過(guò)分類編目的代碼設(shè)計(jì)經(jīng)驗(yàn)總結(jié)。
使用設(shè)計(jì)模式是為了提高代碼可重用性,可閱讀性,和可靠性。
你說(shuō)理解的設(shè)計(jì)模式有幾種?
設(shè)計(jì)模式又可分為三種:創(chuàng)建型(單例模式)、(工廠模式),結(jié)構(gòu)型,行為型(策略模式)
單例模式以及應(yīng)用場(chǎng)景:
(1)確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例,這個(gè)類稱為單例類,單例模式是一種對(duì)象創(chuàng)建型模式。Windows的Task Manager(任務(wù)管理器)、Recycle Bin(回收站)、網(wǎng)站計(jì)數(shù)器
(2)單例模式應(yīng)用的場(chǎng)景一般發(fā)現(xiàn)在以下條件下:
資源共享的情況下,避免由于資源操作時(shí)導(dǎo)致的性能或損耗等。如上述中的日志文件,應(yīng)用配置??刂瀑Y源的情況下,方便資源之間的互相通信。如線程池等
要點(diǎn):一是某個(gè)類只能有一個(gè)實(shí)例;二是它必須自行創(chuàng)建這個(gè)實(shí)例;三是它必須自行向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。
工廠模式:
提供一個(gè)創(chuàng)建對(duì)象的接口,不像客戶端暴露創(chuàng)建對(duì)象的過(guò)程,而是使用一個(gè)公共的接口來(lái)創(chuàng)建對(duì)象。
可以分為三種:簡(jiǎn)單工廠 工廠方法 抽象工廠
一個(gè)類的行為或其算法可以在運(yùn)行時(shí)更改。這種類型的設(shè)計(jì)模式屬于行為型模式。
策略模式:
在策略模式中,我們創(chuàng)建表示各種策略的對(duì)象和一個(gè)行為隨著策略對(duì)象改變而改變的 context 對(duì)象。策略對(duì)象改變 context 對(duì)象的執(zhí)行算法。
要點(diǎn):把一個(gè)個(gè)策略,也就是算法封裝成一個(gè)一個(gè)類,任意的替換
解決的問題:避免多個(gè)if....else帶來(lái)的復(fù)雜
使用場(chǎng)景:系統(tǒng)中需要?jiǎng)討B(tài)的在集中算法中動(dòng)態(tài)的選擇一種,
門面模式:
門面模式也叫外觀模式,定義如下:要求一個(gè)子系統(tǒng)的外部與其內(nèi)部的通信必須通過(guò)一個(gè)統(tǒng)一的對(duì)象進(jìn)行。門面模式提供一個(gè)高層次的接口,使得子系統(tǒng)更易于使用。門面模式注重“統(tǒng)一的對(duì)象”,也就是提供一個(gè)訪問子系統(tǒng)的接口。門面模式與之前說(shuō)過(guò)的模板模式有類似的地方,都是對(duì)一些需要重復(fù)方法的封裝。但從本質(zhì)上來(lái)說(shuō),是不同的。模板模式是對(duì)類本身的方法的封裝,其被封裝的方法也可以單獨(dú)使用;而門面模式,是對(duì)子系統(tǒng)的封裝,其被封裝的接口理論上是不會(huì)被單獨(dú)提出來(lái)用的。
一個(gè)對(duì)象有很多行為,如果么有選擇合適的設(shè)計(jì)模式,這些行為就需要用多重的條件判斷來(lái)實(shí)現(xiàn)算法的切換,增加了代碼的復(fù)雜度。
關(guān)于python有哪幾種常用的設(shè)計(jì)模式就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。