IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
Python軟件開(kāi)發(fā)中引入設(shè)計(jì)模式是由生活中的一些實(shí)例啟發(fā)而來(lái)的。例如,有2個(gè)小朋友Alice和Jack,去麥當(dāng)勞點(diǎn)餐。Alice不了解麥當(dāng)勞的套餐模式,于是想了一下,跟服務(wù)員說(shuō):“我要一個(gè)麥辣雞腿堡、一個(gè)薯?xiàng)l和一杯可樂(lè)”。而Jack經(jīng)常吃麥當(dāng)勞,他也想點(diǎn)和Alice一樣的餐品。Jack發(fā)現(xiàn)其實(shí)Alice點(diǎn)的就是麥當(dāng)勞的A套餐,于是他直接和服務(wù)員說(shuō):“給我一個(gè)A套餐”。
從上面的事例中可以看出,Jack的點(diǎn)餐效率高,因?yàn)镴ack和服務(wù)員都了解麥當(dāng)勞的套餐模式,溝通起來(lái)效率自然就高。那么在這個(gè)生活案例中,創(chuàng)建套餐是提高點(diǎn)餐效率的可重用解決方案。它會(huì)根據(jù)客戶的需求和餐品的被點(diǎn)頻次制定出符合不同人群的套餐。套餐可以重復(fù)被更多的人去點(diǎn),因此大大提高了顧客與服務(wù)員之間的溝通效率。
同理,在軟件開(kāi)發(fā)世界里,本來(lái)沒(méi)有設(shè)計(jì)模式的,用的人多了,也便總結(jié)出了設(shè)計(jì)模式。這就是設(shè)計(jì)模式的由來(lái)。設(shè)計(jì)模式針對(duì)同一情境,眾多軟件開(kāi)發(fā)的人員經(jīng)過(guò)長(zhǎng)時(shí)間總結(jié),便得到了最佳可重用解決方案。這個(gè)可重用解決方案解決了軟件開(kāi)發(fā)過(guò)程中常見(jiàn)的問(wèn)題,擁有固定的術(shù)語(yǔ),因此交流起來(lái)就方便了很多。
綜上,設(shè)計(jì)模式是軟件開(kāi)發(fā)過(guò)程中共性問(wèn)題的可重用解決方案。設(shè)計(jì)模式的內(nèi)涵第一是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。第二是用來(lái)解決共性問(wèn)題。設(shè)計(jì)模式的外延有:?jiǎn)卫J、工廠模式、適配器模式、代理模式等。據(jù)悉,現(xiàn)用的設(shè)計(jì)模式有24種,隨著時(shí)代的發(fā)展,軟件編程可能會(huì)遇到新的場(chǎng)景,設(shè)計(jì)模式會(huì)越來(lái)越豐富。
先看一個(gè)設(shè)計(jì)模式中最基本的單例模式的例子。Windows里面的任務(wù)管理器就是個(gè)典型的單例模式軟件。這是因?yàn)閃indows任務(wù)管理器只能打開(kāi)一個(gè),就算用戶重復(fù)打開(kāi),也只能獲得一個(gè)實(shí)例,這不同于word等軟件可以打開(kāi)多個(gè)實(shí)例。其中的原因就是如果有2個(gè)窗口同時(shí)都能結(jié)束某進(jìn)程,這就會(huì)造成在窗口A中某進(jìn)程結(jié)束了,在窗口B中該進(jìn)程還保留的;同理反過(guò)來(lái),某進(jìn)程在窗口B中結(jié)束了,而在窗口A中還保留著。這樣就會(huì)造成沖突,系統(tǒng)崩潰。Windows里面的任務(wù)管理器符合單例模式,保證一個(gè)類(lèi)僅有一個(gè)實(shí)例的設(shè)計(jì)模式。
>>本文地址:http://www.yceu.cn/zhuanye/2020/48470.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)