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

開發中經常使用的5種設計模式

開發 前端
提到設計模式,很多人都會覺得老生常談,有些人覺得設計模式很有必要,有些人覺得設計模式沒那么重要,那么我們在工作中是否應該重視設計模式呢?我們是否應該將設計模式大量應用到我們的生產過程中呢?

 提到設計模式,很多人都會覺得老生常談,有些人覺得設計模式很有必要,有些人覺得設計模式沒那么重要,那么我們在工作中是否應該重視設計模式呢?我們是否應該將設計模式大量應用到我們的生產過程中呢?

 

[[350942]]

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

工廠模式

這是一個最基礎的設計模式,也是最常用的設計模式,這是一個我們平時一直在使用,但卻不知道自己在使用的設計模式。

工廠模式故名思意就是一個加工廠,不同于現實的是,這里生產的不是衣服,皮鞋,褲子等,而是我們面向對象編程中最重要的對象。

現實中工廠的好處我們都知道,不僅可以批量生產,還可以批量定制,因為有著不同的模具,它可以生產出人們需要的各種類型的產品。

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

通過這樣的調用,我們的產品如果有問題的話,可以隨時召回,可以隨時被工廠補丁修補,實現了產品的靈活擴展。

適配器模式

現實中,我們經常給手機充電,而我們使用的就是電源適配器,為什么叫適配器呢?因為它不僅可以給我們自己的手機充電,也可以給別人的手機充電,甚至還可以給其它用電設備充電,因為它可以適應各種充電設備,所以叫做適配器。

軟件開發中,我們幾乎或者不可能離開數據庫而去開發一款應用,那么選擇什么數據庫是我們最需要關心的,因為如果選擇錯了,可能后期在性能上就會出現瓶頸,那么有沒有一種辦法可以讓我們在不修改代碼,或者修改很少的代碼情況下進行數據庫的無縫切換呢?答案就是適配器模式。

我們首先定義好適配器接口,然后讓各種數據庫實現我們定義好的接口,我們在代碼中使用接口中定義的方法,這樣當我們想要切換數據庫的時候,只要將該數據庫實現對應接口的方法,我們就可以完成數據庫的適配,就可以無縫連接。

觀察者模式

觀察者模式,又叫做通知模式,是一種一對多的模式?,F實中,當校長或者老師在臺上發布一個命令的時候,廣播喇叭就會將命令傳達給每個學生,學生們聽到命令的時候,都會有自己的反應,校長或者老師不必向學生一個個傳達,因為廣播喇叭會把命令傳給學生,這里廣播喇叭就是一個觀察者,而老師和校長就是被觀察者,學生們就是被通知對象,因此觀察者模式也叫做發布訂閱模式。

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

裝飾器模式

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

舉一個軟件開發中的案例,比如我們已經設計好一個短信發送功能,并且經過測試和線上測試這個功能是沒有任何問題的,但是現在有一個新的需求,要求發送短信的時候,還能語音提醒,我們如何能夠在不影響原有的功能情況下,實現這個功能呢,這個時候我們就可以使用裝飾器,也就是給短息發送類裝飾一個語音功能,讓它不僅可以發送短信,此外還可以實現語音發送的功能。

策略模式

策略故名思意就是實現目標方案的集合,簡單來說就是各種方法的集合,他們都是用來實現一件事情的。

軟件開發中,一個對象對不同場景采用不同的策略去實現同一個功能,就是策略方法,如果你聽說過多態,就會發現它和多態的定義很像,不同的是多態是不同對象對同一操作的不同的處理方法,而策略模式是同一個對象對同一個操作采用不同的策略進行處理操作。

比如,我們有一個國慶7天游的項目,起始點和目的地都是從北京到莫斯科,但是可以采用不同的策略,可以飛機,可以火車,可以自駕,同一個夢想,不同的實現方式。

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

總結

如果你足夠細心的話,軟件開發中的設計模式并不是憑空產生的,它一定是來源于生活,其實,任何知識的產生都是來源于生活,只不過我們經過學習提煉之后,將它高于生活。

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

學習設計模式,使用設計模式并不是最終的目的,我們的最終目的是無招勝有招,當你把所有的設計模式全忘記的時候,但是在編碼中卻能運用它們的時候,你才算沒白學設計模式。

責任編輯:華軒 來源: 今日頭條
相關推薦

2022-06-16 08:24:59

設計模式代碼前端

2010-03-31 17:17:32

2021-03-03 16:01:48

Web設計模式

2010-03-22 15:38:46

Python常用模塊

2010-04-07 16:41:50

Oracle SQL優

2021-04-09 20:38:20

Vue模式.前端

2021-03-04 22:15:36

JavaScript編程開發

2017-08-08 10:13:21

開源代碼開發

2011-03-04 17:38:52

2010-04-15 15:42:11

Oracle數據庫

2009-01-04 13:49:17

Java設計模式設計模式工廠模式

2020-11-18 08:15:39

TypeScript設計模式

2022-09-25 22:56:52

JavaScrip編程技巧

2022-09-30 09:26:35

JavaScript技巧

2009-12-15 15:54:11

路由器技術

2010-06-04 19:31:25

遠程MySQL權限

2011-04-11 13:28:31

Oracle安裝

2011-04-11 13:25:59

Sybase安裝

2018-02-01 09:26:12

面試算法題程序員

2010-06-10 13:34:17

MySQL5
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美aⅴ在线观看 | 一区二区三区国产好 | 国产在线不卡视频 | 日韩在线国产 | 久久免费资源 | 久久国产一区 | 成人av免费看 | 国产精品久久久久久久午夜片 | 日韩精品一区二区三区 | 免费骚视频 | 欧美区日韩区 | 亚洲黄色片免费观看 | 精品一二区 | 蜜桃视频在线观看免费视频网站www | 国产精品网址 | 综合国产| 国产精品区一区二区三 | 伊人激情网 | 亚洲免费在线 | 久久久久久久av | 成人精品一区二区三区中文字幕 | 91电影| 在线观看日韩 | 亚洲 中文 欧美 日韩 在线观看 | 久久精品亚洲精品国产欧美 | 欧美h版 | 亚洲成人精品 | 欧美激情国产精品 | 亚洲精品日韩视频 | www国产精品| www.久草 | 国产日韩欧美在线 | 亚洲精品一区二三区不卡 | 成人免费黄色片 | 精品成人一区二区 | 久久久久久91 | 成人免费淫片aa视频免费 | 青青草一区 | 亚洲成人精品视频 | 人人干人人舔 | 可以在线看的黄色网址 |