成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發(fā)中經(jīng)常使用的5種設(shè)計(jì)模式

開發(fā) 前端
提到設(shè)計(jì)模式,很多人都會(huì)覺得老生常談,有些人覺得設(shè)計(jì)模式很有必要,有些人覺得設(shè)計(jì)模式?jīng)]那么重要,那么我們在工作中是否應(yīng)該重視設(shè)計(jì)模式呢?我們是否應(yīng)該將設(shè)計(jì)模式大量應(yīng)用到我們的生產(chǎn)過程中呢?

 提到設(shè)計(jì)模式,很多人都會(huì)覺得老生常談,有些人覺得設(shè)計(jì)模式很有必要,有些人覺得設(shè)計(jì)模式?jīng)]那么重要,那么我們在工作中是否應(yīng)該重視設(shè)計(jì)模式呢?我們是否應(yīng)該將設(shè)計(jì)模式大量應(yīng)用到我們的生產(chǎn)過程中呢?

 

[[350942]]

如果你從未聽說過設(shè)計(jì)模式,我敢打賭你一定不是一個(gè)合格程序員。這就好比一個(gè)人說他自己是數(shù)學(xué)家,但是他連勾股定理都沒聽過,這怎么可能?

工廠模式

這是一個(gè)最基礎(chǔ)的設(shè)計(jì)模式,也是最常用的設(shè)計(jì)模式,這是一個(gè)我們平時(shí)一直在使用,但卻不知道自己在使用的設(shè)計(jì)模式。

工廠模式故名思意就是一個(gè)加工廠,不同于現(xiàn)實(shí)的是,這里生產(chǎn)的不是衣服,皮鞋,褲子等,而是我們面向?qū)ο缶幊讨凶钪匾膶ο蟆?/p>

現(xiàn)實(shí)中工廠的好處我們都知道,不僅可以批量生產(chǎn),還可以批量定制,因?yàn)橛兄煌哪>撸梢陨a(chǎn)出人們需要的各種類型的產(chǎn)品。

軟件開發(fā)中,我們更關(guān)注的是使用對象的方法,至于對象如何創(chuàng)建的,我們并不是很關(guān)心,因此,抽象工廠解決了我們的問題。我們只需要訂制我們需要的產(chǎn)品功能接口,然后讓工廠按照我們的接口,也就是實(shí)現(xiàn)接口生產(chǎn)對象即可。

通過這樣的調(diào)用,我們的產(chǎn)品如果有問題的話,可以隨時(shí)召回,可以隨時(shí)被工廠補(bǔ)丁修補(bǔ),實(shí)現(xiàn)了產(chǎn)品的靈活擴(kuò)展。

適配器模式

現(xiàn)實(shí)中,我們經(jīng)常給手機(jī)充電,而我們使用的就是電源適配器,為什么叫適配器呢?因?yàn)樗粌H可以給我們自己的手機(jī)充電,也可以給別人的手機(jī)充電,甚至還可以給其它用電設(shè)備充電,因?yàn)樗梢赃m應(yīng)各種充電設(shè)備,所以叫做適配器。

軟件開發(fā)中,我們幾乎或者不可能離開數(shù)據(jù)庫而去開發(fā)一款應(yīng)用,那么選擇什么數(shù)據(jù)庫是我們最需要關(guān)心的,因?yàn)槿绻x擇錯(cuò)了,可能后期在性能上就會(huì)出現(xiàn)瓶頸,那么有沒有一種辦法可以讓我們在不修改代碼,或者修改很少的代碼情況下進(jìn)行數(shù)據(jù)庫的無縫切換呢?答案就是適配器模式。

我們首先定義好適配器接口,然后讓各種數(shù)據(jù)庫實(shí)現(xiàn)我們定義好的接口,我們在代碼中使用接口中定義的方法,這樣當(dāng)我們想要切換數(shù)據(jù)庫的時(shí)候,只要將該數(shù)據(jù)庫實(shí)現(xiàn)對應(yīng)接口的方法,我們就可以完成數(shù)據(jù)庫的適配,就可以無縫連接。

觀察者模式

觀察者模式,又叫做通知模式,是一種一對多的模式。現(xiàn)實(shí)中,當(dāng)校長或者老師在臺(tái)上發(fā)布一個(gè)命令的時(shí)候,廣播喇叭就會(huì)將命令傳達(dá)給每個(gè)學(xué)生,學(xué)生們聽到命令的時(shí)候,都會(huì)有自己的反應(yīng),校長或者老師不必向?qū)W生一個(gè)個(gè)傳達(dá),因?yàn)閺V播喇叭會(huì)把命令傳給學(xué)生,這里廣播喇叭就是一個(gè)觀察者,而老師和校長就是被觀察者,學(xué)生們就是被通知對象,因此觀察者模式也叫做發(fā)布訂閱模式。

在軟件開發(fā)中,比如我們的產(chǎn)品有這樣一個(gè)功能,用戶下單支付成功之后,就會(huì)發(fā)送一條短信通知用戶,如果之后希望不僅發(fā)送短信,還需要發(fā)送郵件,還需要語音通知,在這樣的情況下,我們就可以采用觀察者模式,我們將支付成功信息放入到消息隊(duì)列中,至于發(fā)短信還是發(fā)郵件,由各個(gè)業(yè)務(wù)模塊訂閱消息隊(duì)列自己處理。這樣在訂單模塊里面,就不需要一個(gè)個(gè)通知短信模塊,郵件模塊了。

裝飾器模式

現(xiàn)實(shí)生活中,一般情況下一個(gè)人換了一件衣服之后,我們依然可以認(rèn)出他,衣服就是他的裝飾,說明裝飾并不影響一個(gè)人的容貌,也就是不影響這個(gè)人的功能,但是通過穿著一件高檔外衣,卻可以提升一個(gè)人的氣質(zhì),這就是裝飾的作用,而裝飾器模式就是通過裝飾一個(gè)對象而不改變對象來讓這個(gè)對象更強(qiáng)大。

舉一個(gè)軟件開發(fā)中的案例,比如我們已經(jīng)設(shè)計(jì)好一個(gè)短信發(fā)送功能,并且經(jīng)過測試和線上測試這個(gè)功能是沒有任何問題的,但是現(xiàn)在有一個(gè)新的需求,要求發(fā)送短信的時(shí)候,還能語音提醒,我們?nèi)绾文軌蛟诓挥绊懺械墓δ芮闆r下,實(shí)現(xiàn)這個(gè)功能呢,這個(gè)時(shí)候我們就可以使用裝飾器,也就是給短息發(fā)送類裝飾一個(gè)語音功能,讓它不僅可以發(fā)送短信,此外還可以實(shí)現(xiàn)語音發(fā)送的功能。

策略模式

策略故名思意就是實(shí)現(xiàn)目標(biāo)方案的集合,簡單來說就是各種方法的集合,他們都是用來實(shí)現(xiàn)一件事情的。

軟件開發(fā)中,一個(gè)對象對不同場景采用不同的策略去實(shí)現(xiàn)同一個(gè)功能,就是策略方法,如果你聽說過多態(tài),就會(huì)發(fā)現(xiàn)它和多態(tài)的定義很像,不同的是多態(tài)是不同對象對同一操作的不同的處理方法,而策略模式是同一個(gè)對象對同一個(gè)操作采用不同的策略進(jìn)行處理操作。

比如,我們有一個(gè)國慶7天游的項(xiàng)目,起始點(diǎn)和目的地都是從北京到莫斯科,但是可以采用不同的策略,可以飛機(jī),可以火車,可以自駕,同一個(gè)夢想,不同的實(shí)現(xiàn)方式。

淘寶首頁的千人千面也是策略模式,都是顯示商品,面對不同的人,顯示的就是不同的商品,這就是由策略決定的。

總結(jié)

如果你足夠細(xì)心的話,軟件開發(fā)中的設(shè)計(jì)模式并不是憑空產(chǎn)生的,它一定是來源于生活,其實(shí),任何知識(shí)的產(chǎn)生都是來源于生活,只不過我們經(jīng)過學(xué)習(xí)提煉之后,將它高于生活。

設(shè)計(jì)模式不是萬能的,它并不能幫助你解決所有問題,但是它可以幫助你解決大部分問題,并且在編碼中使用設(shè)計(jì)模式的話,你會(huì)發(fā)現(xiàn),你的代碼看起來會(huì)更加清晰,更加有條理。

學(xué)習(xí)設(shè)計(jì)模式,使用設(shè)計(jì)模式并不是最終的目的,我們的最終目的是無招勝有招,當(dāng)你把所有的設(shè)計(jì)模式全忘記的時(shí)候,但是在編碼中卻能運(yùn)用它們的時(shí)候,你才算沒白學(xué)設(shè)計(jì)模式。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2022-06-16 08:24:59

設(shè)計(jì)模式代碼前端

2010-03-31 17:17:32

2021-03-03 16:01:48

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

2010-03-22 15:38:46

Python常用模塊

2010-04-07 16:41:50

Oracle SQL優(yōu)

2021-04-09 20:38:20

Vue模式.前端

2021-03-04 22:15:36

JavaScript編程開發(fā)

2017-08-08 10:13:21

開源代碼開發(fā)

2011-03-04 17:38:52

2010-04-15 15:42:11

Oracle數(shù)據(jù)庫

2009-01-04 13:49:17

Java設(shè)計(jì)模式設(shè)計(jì)模式工廠模式

2020-11-18 08:15:39

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

2022-09-30 09:26:35

JavaScript技巧

2022-09-25 22:56:52

JavaScrip編程技巧

2011-04-11 13:25:59

Sybase安裝

2018-02-01 09:26:12

面試算法題程序員

2009-12-15 15:54:11

路由器技術(shù)

2010-06-04 19:31:25

遠(yuǎn)程MySQL權(quán)限

2011-04-11 13:28:31

Oracle安裝

2010-06-10 13:34:17

MySQL5
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品日本一区二区在线播放 | 日韩精品一区二区三区老鸭窝 | 在线视频亚洲 | 综合网视频 | 国产女人与拘做受免费视频 | 在线观看涩涩视频 | 日韩成人久久 | 久久精品久久久 | 色久电影| 欧美久久久网站 | 老司机免费视频 | 色婷婷综合久久久中字幕精品久久 | 午夜视频在线播放 | 蜜月aⅴ国产精品 | 色综合99| 国产精品国产三级国产aⅴ中文 | 伊人狠狠| 欧美一区2区三区4区公司二百 | 91文字幕巨乱亚洲香蕉 | 国产高清在线精品一区二区三区 | 婷婷在线视频 | 91精品无人区卡一卡二卡三 | 18gay男同69亚洲网站 | 成人在线免费视频 | 涩涩99 | 日本成人中文字幕在线观看 | 精精国产xxxx视频在线野外 | 国内精品久久久久久久影视简单 | 成人小视频在线观看 | 日本不卡一区 | 又黑又粗又长的欧美一区 | 久草在线在线精品观看 | 欧美久久一级特黄毛片 | 亚洲免费精品 | 国产精品自产av一区二区三区 | 99久久婷婷国产综合精品首页 | 网色| 久久国产精彩视频 | 天天看天天操 | 久久久久久91 | 99re超碰|