摘要:當(dāng)然,除了讓我們顯得更加專業(yè)之外,在自己所學(xué)習(xí)或者工作的項目中,適當(dāng)合理的使用設(shè)計模式,能夠給項目帶來很大的好處。
簡單說兩句
本文首發(fā)公眾號【一名打字員】
對不住各位老鐵了,年前說好要更幾波JAVA的東西,又偷懶了,沒辦法,在這里用小錘錘偷偷錘了自己幾下。由于工作原因,更新時間不定,各位老鐵有問題可以私聊我哈。
對于初學(xué)者或者是正在向中高級的Java程序猿(打字員)來說,時刻梳理自己所掌握的知識是十分重要的,近期本打字員會整理一下關(guān)于J2EE下面的幾種常用的設(shè)計模式,并逐個解析,希望大家能夠一起鞏固一下相關(guān)掌握的知識點。
為什么要用設(shè)計模式相信很多人都有這個疑問,有的人說在50萬行以下的項目中,設(shè)計模式基本是沒有用的。當(dāng)然,除了讓我們code顯得更加專業(yè)之外,在自己所學(xué)習(xí)或者工作的項目中,適當(dāng)合理的使用設(shè)計模式,能夠給項目帶來很大的好處。首先,使用了合理的模式,團隊里進行溝通協(xié)作會很方便,交流成本有時候特別高,特別是在程序員之間。其次恰當(dāng)?shù)氖褂迷O(shè)計模式可以用以解決特定場景的問題的一系列方法,幫助我們改善系統(tǒng)的設(shè)計,增強系統(tǒng)的健壯性、可擴展性,為以后鋪平道路。
最后用網(wǎng)絡(luò)上的一句概括來說,設(shè)計模式(Designpattern)就是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。
模式概覽在實際的學(xué)習(xí)或者工作中,大家或多或少的會接觸或者使用一些Java的設(shè)計模式,在Java中存在23種設(shè)計模式,其圖如下:
其中主要分為三大類:
創(chuàng)建型模式
結(jié)構(gòu)型模式
行為型模式
在文末會貼出所有的設(shè)計模式,其中本打字員映象里自己常用的模式一般有:
工廠模式、工廠方法模式、抽象工廠模式、單例模式等,這些都屬于創(chuàng)建型模式。
觀察者模式,模版模式,策略模式等,這些都屬于行為型模式。
包裝模式,適配器模式,組合模式,代理模式等,這些屬于結(jié)構(gòu)型模式。
六大原則在學(xué)習(xí)使用設(shè)計模式的時候,我們需要了解這六大原則:
單一原則
意思就是,我們在編寫bug,不對,編寫代碼的時候在一個功能類中盡量負責(zé)單一的功能,這個功能應(yīng)當(dāng)盡量的烤爐周全,保持極致。
里氏替換原則
這個原則可能大家乍一眼不怎么能夠理解,與C#中里氏替換原則一致,這個意思就是一個子類能夠替換父類并且能夠正常的工作。有機智的童鞋要舉手提問了,那Java中的多態(tài)會不會違背這種原則呢,其實不然。所謂的里氏替換原則就是讓你的某一段程序耦合于基類或者接口,而不是具體繼承了基類的子類或?qū)崿F(xiàn)接口的具體類型。僅替換子類不會讓你這個程序的屬性有所改變。所謂多態(tài)機制,則是給了你達成上述原則的其中一種能力。
接口隔離原則
這個應(yīng)該比較好理解,見字如意。這個接口也叫做接口最小化原則,強調(diào)的是一個接口擁有的行為應(yīng)該盡可能的小。
依賴倒置原則
這個強調(diào)了高層模塊不該依賴于低層模塊,二者都應(yīng)該依賴于抽象,抽象不應(yīng)該依賴于細節(jié),細節(jié)應(yīng)該依賴于抽象。
迪米特原則
也稱最小知道原則,即一個類應(yīng)該盡量不要知道其他類太多的東西,不要和陌生的類有太多接觸。
開閉原則
其實本打字員也對這個原則有點模糊,但是大體的意思就是一句話對修改關(guān)閉,對擴展開放。在網(wǎng)上瀏覽相關(guān)文章的時候提到過一句在大話設(shè)計模式中出現(xiàn)的總結(jié),“用抽象構(gòu)建框架,用細節(jié)實現(xiàn)擴展”。我想這句話也許是對整體的原則做出的最好的解釋了吧。
寫在最后說實話,本打字員也不知道自己何時放棄,會停止編程,會不再擼代碼,因為這份工作對精神上的消耗確實很大。但是既然我們依然堅持在這個崗位上,我們就應(yīng)該本著一名程序員的心態(tài),去學(xué)習(xí)新的技術(shù)與知識,維護和鞏固現(xiàn)有的知識點,為成為自己想象中的自己而努力吧。
附:
模式 | 名稱 | 所屬分類 |
---|---|---|
Abstract Factory | 抽象工廠模式 | 創(chuàng)建型 |
Builder | 建造模式 | 創(chuàng)建型 |
Factory Method | 工廠方法模式 | 創(chuàng)建型 |
Prototype | 原始模型模式 | 創(chuàng)建型 |
Singleton | 單例模式 | 創(chuàng)建型 |
Adapter | 適配器(變壓器)模式 | 結(jié)構(gòu)型 |
Bridge | 橋梁模式 | 結(jié)構(gòu)型 |
Composite | 合成模式 | 結(jié)構(gòu)型 |
Decorator | 裝飾模式 | 結(jié)構(gòu)型 |
Facade | 門面模式 | 結(jié)構(gòu)型 |
Flyweight | 享元模式 | 結(jié)構(gòu)型 |
Proxy | 代理模式 | 結(jié)構(gòu)型 |
Chain Of Responsibility | 責(zé)任鏈模式 | 行為型 |
Command | 命令模式 | 行為型 |
Interpreter | 解釋器模式 | 行為型 |
Iterator | 迭代子模式 | 行為型 |
Mediator | 調(diào)停者模式 | 行為型 |
Memento | 備忘錄模式 | 行為型 |
Observer | 觀察者模式 | 行為型 |
State | 狀態(tài)模式 | 行為型 |
Strategy | 策略模式 | 行為型 |
Template Method | 模板方法模式 | 行為型 |
Visitor | 訪問者模式 | 行為型 |
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68727.html
摘要:前言這里筑夢師是一名正在努力學(xué)習(xí)的開發(fā)工程師目前致力于全棧方向的學(xué)習(xí)希望可以和大家一起交流技術(shù)共同進步用簡書記錄下自己的學(xué)習(xí)歷程個人學(xué)習(xí)方法分享本文目錄更新說明目錄學(xué)習(xí)方法學(xué)習(xí)態(tài)度全棧開發(fā)學(xué)習(xí)路線很長知識拓展很長在這里收取很多人的建議以后決 前言 這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進步,用簡書記錄下自己的學(xué)習(xí)歷程...
摘要:前言這里筑夢師是一名正在努力學(xué)習(xí)的開發(fā)工程師目前致力于全棧方向的學(xué)習(xí)希望可以和大家一起交流技術(shù)共同進步用簡書記錄下自己的學(xué)習(xí)歷程個人學(xué)習(xí)方法分享本文目錄更新說明目錄學(xué)習(xí)方法學(xué)習(xí)態(tài)度全棧開發(fā)學(xué)習(xí)路線很長知識拓展很長在這里收取很多人的建議以后決 前言 這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進步,用簡書記錄下自己的學(xué)習(xí)歷程...
摘要:老實說,當(dāng)時一進入世界的大門就暈了,各種規(guī)范概念和英文縮寫詞能把人整的暈暈乎乎。等新的英文縮寫又出現(xiàn)了,一口老血還沒來得及噴出,又重新振作開始新的學(xué)習(xí)征程。 showImg(http://upload-images.jianshu.io/upload_images/1131767-1c5d16e39435df10.jpg?imageMogr2/auto-orient/strip%7Ci...
閱讀 2420·2021-09-22 15:15
閱讀 657·2021-09-02 15:11
閱讀 1799·2021-08-30 09:48
閱讀 1899·2019-08-30 15:56
閱讀 1508·2019-08-30 15:52
閱讀 2060·2019-08-30 15:44
閱讀 447·2019-08-29 16:29
閱讀 1552·2019-08-29 11:06