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

什么是設(shè)計(jì)模式?程序員如何學(xué)好設(shè)計(jì)模式?

開(kāi)發(fā) 前端
設(shè)計(jì)模式是一種抽象的編程思想,并不局限于某一特定的編程語(yǔ)言,而是在許多語(yǔ)言之間相通的。比如在Java、C#、C++語(yǔ)言當(dāng)中,都可以使用到設(shè)計(jì)模式。

[[437286]]

前幾天,我給大家介紹了算法和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識(shí)。后來(lái)又有小伙伴私信問(wèn)我:“小灰,你能不能也講一講設(shè)計(jì)模式的相關(guān)知識(shí)?”

沒(méi)問(wèn)題!對(duì)于程序員來(lái)說(shuō),設(shè)計(jì)模式也是必須要掌握的一項(xiàng)核心知識(shí),我今天就來(lái)給大家重點(diǎn)講一講。

編程的痛點(diǎn)

那么,到底什么是設(shè)計(jì)模式呢?

在介紹這個(gè)概念之前,我先問(wèn)問(wèn)大家,在你們的工作當(dāng)中,有沒(méi)有接手過(guò)“祖?zhèn)鞔a”?也就是老板讓你維護(hù)前一任程序員寫(xiě)的老項(xiàng)目。

小灰自己做過(guò)10年的程序員,有過(guò)很多次這樣的經(jīng)歷。這些個(gè)祖?zhèn)鞔a,有相當(dāng)一部分壓根兒不知道寫(xiě)的是什么,注釋非常少,結(jié)構(gòu)也很混亂,不敢修改也不敢刪除。

當(dāng)初寫(xiě)下這些代碼的前任,要么已經(jīng)離職了,根本找不到人來(lái)問(wèn)。

就算他還在職,能找到人,想問(wèn)對(duì)方一點(diǎn)代碼的問(wèn)題,也還得看對(duì)方的臉色。

這就是祖?zhèn)鞔a的痛苦。

設(shè)計(jì)模式是什么

我們?cè)撛趺崔k呢?

許多前輩程序員經(jīng)過(guò)長(zhǎng)期實(shí)踐,總結(jié)出了一系列的解決方案。這些解決方案可以提高代碼的可讀性,增加代碼的可重用性,保證代碼的可擴(kuò)展性。

這一系列解決方案,被人們稱為設(shè)計(jì)模式,它是面向?qū)ο缶幊坍?dāng)中的各種經(jīng)典套路。

設(shè)計(jì)模式是一種抽象的編程思想,并不局限于某一特定的編程語(yǔ)言,而是在許多語(yǔ)言之間相通的。比如在Java、C#、C++語(yǔ)言當(dāng)中,都可以使用到設(shè)計(jì)模式。

但設(shè)計(jì)模式也有它的邊界,它的適用范圍是面向?qū)ο蟮木幊陶Z(yǔ)言。對(duì)于面向過(guò)程語(yǔ)言、函數(shù)式編程語(yǔ)言,談?wù)撛O(shè)計(jì)模式是沒(méi)有意義的。

如果有人跟你說(shuō),F(xiàn)ortran語(yǔ)言當(dāng)中的設(shè)計(jì)模式非常好用,或者說(shuō)自己在學(xué)習(xí)Lisp語(yǔ)言當(dāng)中的設(shè)計(jì)模式,這人一定是一個(gè)假程序員。

設(shè)計(jì)模式的分類

那么,程序員前輩們一共總結(jié)出了多少種設(shè)計(jì)模式呢?

在1995年,有四位編程界的大佬合著了一本書(shū),書(shū)名叫做《Design Patterns: Elements of Reusable Object-Oriented Software》,翻譯過(guò)來(lái)就是《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》,書(shū)里面總共收錄了23種設(shè)計(jì)模式。

這本書(shū)是軟件研發(fā)領(lǐng)域重要的里程碑,合著此書(shū)的四位作者,被業(yè)內(nèi)稱為GoF(Gang of Four),因此這本書(shū)也被人稱為GoF設(shè)計(jì)模式。

這23種設(shè)計(jì)模式,又可以根據(jù)設(shè)計(jì)的目的,分為大大類型:

第一類:創(chuàng)建型模式

這一類設(shè)計(jì)模式的目的是用于創(chuàng)建對(duì)象。比如大家常用的工廠模式、單例模式,就屬于創(chuàng)建型模式。

第二類:結(jié)構(gòu)型模式

這一類設(shè)計(jì)模式的目的是優(yōu)化不同類、對(duì)象、接口之間的結(jié)構(gòu)關(guān)系。比較常用的代理模式、裝飾者模式,就屬于結(jié)構(gòu)型模式。

第三類:行為型模式

這一類設(shè)計(jì)模式的目的是更好地實(shí)現(xiàn)類與類之間的交互以及算法的執(zhí)行。比如策略模式、觀察者模式,就屬于行為型模式。

下面這張圖,總結(jié)了所有23種設(shè)計(jì)模式的分類,大家可以收藏一下。

可能有的人會(huì)覺(jué)得疑惑:網(wǎng)上有很多程序員總是說(shuō)到24種設(shè)計(jì)模式,你這里怎么只說(shuō)了23種呢?

其實(shí),這兩種說(shuō)法都沒(méi)錯(cuò),24種設(shè)計(jì)模式是在原有23種的基礎(chǔ)上,補(bǔ)充了一個(gè)空對(duì)象模式,它屬于行為型模式。

此外,隨著編程領(lǐng)域的不斷發(fā)展,有很多新的設(shè)計(jì)模式不斷被人提出來(lái),目前人們所用到的設(shè)計(jì)模式其實(shí)遠(yuǎn)遠(yuǎn)不止24種。

比如生產(chǎn)者消費(fèi)者模式,發(fā)布訂閱模式等等,他們都不在24種設(shè)計(jì)模式當(dāng)中,但仍然非常常用。

可能有些做后臺(tái)開(kāi)發(fā)的朋友會(huì)問(wèn)了:我們平時(shí)用到的MVC模式,是不是也屬于設(shè)計(jì)模式呢?

以我個(gè)人的觀點(diǎn),設(shè)計(jì)模式所研究的是類與對(duì)象、接口之間的關(guān)系,解決的是某一個(gè)特定問(wèn)題。

而MVC,研究的是代碼模塊之間的關(guān)系,并且提供的是一攬子解決方案。所以MVC屬于一種架構(gòu),而不是設(shè)計(jì)模式。

本文轉(zhuǎn)載自微信公眾號(hào)「程序員小灰」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系程序員小灰公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 程序員小灰
相關(guān)推薦

2011-05-30 14:23:11

設(shè)計(jì)模式程序員

2017-09-07 14:44:10

程序員

2022-10-25 08:23:09

Reactor模式I/O

2021-07-29 14:42:55

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

2015-12-15 09:37:18

程序員設(shè)計(jì)勤奮

2021-02-01 10:01:58

設(shè)計(jì)模式 Java單例模式

2023-11-02 21:11:11

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

2012-06-29 09:56:57

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

2020-03-18 09:31:47

設(shè)計(jì)模式軟件

2020-08-21 07:23:50

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

2020-11-04 08:54:54

狀態(tài)模式

2023-04-10 09:20:13

設(shè)計(jì)模式訪客模式

2013-11-26 16:09:34

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

2020-10-23 09:40:26

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

2020-11-03 13:05:18

命令模式

2022-01-12 13:33:25

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

2023-05-04 08:47:31

命令模式抽象接口

2015-08-25 15:47:56

2019-03-11 08:36:11

Python代碼Flask

2014-11-25 09:31:17

程序員
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久99精品久久久久久狂牛 | 99免费精品视频 | www.99久久.com| 中文字幕加勒比 | caoporn地址 | 久久久久亚洲精品 | 九九热在线视频 | 国产精品久久久久久久久 | 成人一级黄色毛片 | 久久6| 一区二区不卡视频 | 亚洲一区不卡在线 | 视频一区二区三区中文字幕 | 日韩视频 中文字幕 | 一区二区三区四区在线 | 亚洲欧美中文日韩在线v日本 | 国产性色视频 | 精品欧美一区免费观看α√ | 中文字幕日韩欧美一区二区三区 | 91在线观看视频 | 啪啪免费 | 国产精品久久 | 国产高清视频在线播放 | 久久久999免费视频 999久久久久久久久6666 | 亚洲国产精品99久久久久久久久 | 尤物在线视频 | 久久精品国产精品青草 | 日韩精品一区二区三区中文字幕 | 久久久精品一区 | 97视频网站 | 在线观看视频一区 | 不卡的av在线| 一区二区三区高清 | 日韩有码一区 | 网站黄色在线免费观看 | 亚洲精品乱码久久久久久按摩观 | 97在线播放 | 国产精品1区 | 中文字幕一区二区三区精彩视频 | 亚洲国产成人在线 | 国产精品伦理一区二区三区 |