創(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è)公共的接口來創(chuàng)建對(duì)象;3、策略模式,隨著策略對(duì)象改變內(nèi)容;4、門面模式,對(duì)子系統(tǒng)的封裝,使得封裝接口不會(huì)被單獨(dú)提出來。
什么是設(shè)計(jì)模式?
設(shè)計(jì)模式是一套被反復(fù)使用,多數(shù)人知道,經(jīng)過分類編目的代碼設(shè)計(jì)經(jīng)驗(yàn)總結(jié)。
使用設(shè)計(jì)模式是為了提高代碼可重用性,可閱讀性,和可靠性。
你說理解的設(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ì)象的過程,而是使用一個(gè)公共的接口來創(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帶來的復(fù)雜
使用場(chǎng)景:系統(tǒng)中需要?jiǎng)討B(tài)的在集中算法中動(dòng)態(tài)的選擇一種,
門面模式:
門面模式也叫外觀模式,定義如下:要求一個(gè)子系統(tǒng)的外部與其內(nèi)部的通信必須通過一個(gè)統(tǒng)一的對(duì)象進(jìn)行。門面模式提供一個(gè)高層次的接口,使得子系統(tǒng)更易于使用。門面模式注重“統(tǒng)一的對(duì)象”,也就是提供一個(gè)訪問子系統(tǒng)的接口。門面模式與之前說過的模板模式有類似的地方,都是對(duì)一些需要重復(fù)方法的封裝。但從本質(zhì)上來說,是不同的。模板模式是對(duì)類本身的方法的封裝,其被封裝的方法也可以單獨(dú)使用;而門面模式,是對(duì)子系統(tǒng)的封裝,其被封裝的接口理論上是不會(huì)被單獨(dú)提出來用的。
一個(gè)對(duì)象有很多行為,如果么有選擇合適的設(shè)計(jì)模式,這些行為就需要用多重的條件判斷來實(shí)現(xiàn)算法的切換,增加了代碼的復(fù)雜度。
關(guān)于python有哪幾種常用的設(shè)計(jì)模式就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
當(dāng)前題目:python有哪幾種常用的設(shè)計(jì)模式-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://bm7419.com/article40/didieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、云服務(wù)器、定制網(wǎng)站、微信小程序、網(wǎng)站營銷、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容