設計模式之 學習設計模式的意義

若是說學習說數據結構和算法是爲了寫出高效的代碼,那學習設計模式就是爲了寫出高質量的代碼前端

爲何要學習設計模式的三個理由:
(一) 應對面試中的設計模式相關問題
學習設計模式和算法同樣,最功利、最直接的目的,可能就是應對面試了
無論是前端工程師、後端工程師,仍是全棧工程師,在求職面試中,設計模式問題是被問得頻率比較高的一類問題。
特別是大廠,常常會拿算法、設計模式之類的問題來考察候選人。
常見的:面試

一、面向對象的四大特性:封裝、抽象、繼承、多態算法

二、SOLID 原則?DRY 原則?KISS 原則?YAGNI 原則?LOD 原則?後端

SOLID 原則並不是一個原則。它包含:單一職責原則(SRP)、開閉原則(OCP)、里氏替換原則(LSP)、接口隔離原則(ISP)、依賴倒置原則(DIP)。

DRY 原則 :Don’t Repeat Yourself 不要寫重複的代碼設計模式

KISS 原則:Keep It Simple and Stupid. 保持代碼可讀和可維護的重要手段前端工程師

YAGNI 原則:You Ain’t Gonna Need It。這條原則的核心思想就是:不要作過分設計。數據結構

LOD 原則:Law of Demeter(叫做最小知識原則,英文翻譯爲:The Least Knowledge Principle )可以實現代碼的「高內聚、鬆耦合」框架

三、說一下設計模式?你都知道哪些?數據結構和算法

設計模式總共有 23 種,整體來講能夠分爲三大類:建立型模式( Creational Patterns )、結構型模式( Structural Patterns )和行爲型模式( Behavioral Patterns )
image

(二)提升複雜代碼的設計和開發能力學習

能夠從如下幾個點思考如何設計代碼:
如何分層、分模塊?

應該怎麼劃分類?

每一個類應該具備哪些屬性、方法?

怎麼設計類之間的交互?

該用繼承仍是組合?

該使用接口仍是抽象類?

怎樣作到解耦、高內聚低耦合?

該用單例模式仍是靜態方法?

用工廠模式建立對象仍是直接 new 出來?

如何避免引入設計模式提升擴展性的同時帶來的下降可讀性問題?

(三)讓讀源碼、學框架事半功倍

相關文章
相關標籤/搜索