設(shè)計模式 - 導(dǎo)讀

發(fā)布說明

其實不用設(shè)計模式并非不可以,但是用好設(shè)計模式能幫助我們更好地解決實際問題。

設(shè)計模式天天都在用,但自己卻無感知。

本系列文章,初衷是為了記錄日常經(jīng)常使用的設(shè)計模式,也給學(xué)習(xí)設(shè)計模式的同學(xué)們提供參考和查閱。

文章內(nèi)容有自己的理解,也有參考網(wǎng)絡(luò),如有侵犯,請告知刪除。

學(xué)習(xí)設(shè)計模式的重要性

設(shè)計模式最重要的是解耦。

學(xué)習(xí)設(shè)計模式是如何總結(jié)經(jīng)驗的,把經(jīng)驗為自己所用。

學(xué)設(shè)計模式也是鍛煉將業(yè)務(wù)需求轉(zhuǎn)換技術(shù)實現(xiàn)的一種非常有效的方式。

設(shè)計模式的基石

我們在學(xué)習(xí)設(shè)計模式之前,建議大家,一定要掌握好設(shè)計模式的幾大原則,《設(shè)計模式之禪》一書中開篇就是講的是設(shè)計原則;

所以在本篇文章中,在這里先對設(shè)計原則做一個回顧和總結(jié)。

設(shè)計原則 解釋
開閉原則 對擴展開放,對修改關(guān)閉。
依賴倒置原則 通過抽象使各個類或者模塊不相互影響,實現(xiàn)松耦合。
單一職責原則 一個類、接口、方法只做一件事。
接口隔離原則 盡量保證接口的純潔性,客戶端不應(yīng)該依賴不需要的接口。
迪米特法則 又叫最少知道原則,一個類對其所依賴的類知道得越少越好。
里氏替換原則 子類可以擴展父類的功能但不能改變父類原有的功能。
合成復(fù)用原則 盡量使用對象組合、聚合,而不使用繼承關(guān)系達到代碼復(fù)用的目的。

經(jīng)典框架都在用設(shè)計模式解決問題

Spring 就是一個把設(shè)計模式用得淋漓盡致的經(jīng)典框架,其實從類的命名就能看出來,我
來一一列舉:

設(shè)計模式名稱 舉例
工廠模式 BeanFactory
裝飾器模式 BeanWrapper
代理模式 AopProxy
委派模式 DispatcherServlet
策略模式 HandlerMapping
適配器模式 HandlerAdapter
模板模式 JdbcTemplate
觀察者模式 ContextLoaderListener

設(shè)計模式分類

<table style="border-collapse: collapse;border:1px solid #f6f6f6;">
<thead>
<tr>
<th>類型</th>
<th>名稱</th>
<th>英文</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">創(chuàng)建型模式</td>
<td>工廠模式</td>
<td>Factory Patterns</td>
</tr>
<tr>
<td>單例模式</td>
<td>Singleton Pattern</td>
</tr>
<tr>
<td>原型模式</td>
<td>Prototype Pattern</td>
</tr>
<tr>
<td rowspan="3">結(jié)構(gòu)型模式</td>
<td>適配器模式</td>
<td>Prototype Pattern</td>
</tr>
<tr>
<td>裝飾器模式</td>
<td>Decorator Pattern</td>
</tr>
<tr>
<td>代理模式</td>
<td>Proxy Pattern</td>
</tr>
<tr>
<td rowspan="4">行為型模式</td>
<td>策略模式</td>
<td>Strategy Pattern</td>
</tr>
<tr>
<td>模板模式</td>
<td>Template Pattern</td>
</tr>
<tr>
<td>委派模式</td>
<td>Delegate Pattern</td>
</tr>
<tr>
<td>觀察者模式</td>
<td>Observer Pattern</td>
</tr>
</tbody>
</table>

注意

需要特別聲明的是,設(shè)計模式從來都不是單個設(shè)計模式獨立使用的。在實際應(yīng)用中,通常是多個設(shè)計模式混合使用,你中有我,我中有你。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容