![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CM2QTMxADO0EzN2cTNwQmMzYzXyQTMwkDMzIzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
🍁 作者:知識淺談,CSDN部落格專家,阿裡雲簽約部落客,InfoQ簽約部落客,華為雲雲享專家
📌 擅長領域:全棧工程師、爬蟲、ACM算法
💒 公衆号:知識淺談
設計模式和其他原則的總結
🤞以下是我對設計模式和設計原則的簡單了解,不是去複制粘貼網絡上的東西,自己的簡答了解,比較偏向白話一點,希望有所幫助。🤞
正菜來了⛳⛳⛳
🎈設計模式
- 工廠模式:如我們自定義的建立對象的對象等,如A對象專門用于建立B對象,即A為工廠類。
-
抽象工廠模式:我們常用的ApplicationContext,BeanFactory,即為抽象工廠模式
。插入一點:工廠模式專門生産同一種類的對象,抽象工廠模式生成多種類的對象
- 單例模式:常用的SpringIOC容器中預設建立的都是單例的對象,即單例模式的應用。
- 原型模式: 這種模式即我們常用的new 去建立的對象記為原型模式下建立的的對象。
- 裝飾器模式:這個主要是為了争強某個對象方法的功能。
-
代理模式:代理模式也是為了增強某個方法的功能建立的代理對象。
。裝飾器和代理模式兩者的差別就是裝飾器不改變原來的對象,代理模式建立的代理對象内部都會新建立一個目标對象
- 觀察者模式:spring中的監聽器,即當有什麼問題的時候才會去通知。
- 擴充卡模式:我們常用 FileInputstream,預設隻能讀取位元組流,為了能夠适配讀取字元流,使用InputStreamReader把傳入的FileInputstream建立一個reader的對象。
- 享元模式:享元模式(Flyweight pattern)又叫輕量級模式,是對象池的一種标簽。類似線程池,線程池可以避免不停的建立和銷毀對象,消耗性能。享元模式可以減少對象數量,其宗旨是共享細粒度對象,将多個對同一對象的通路集中起來
🎈七大設計原則
- 開放封閉原則:對擴充開放,對修改封閉
- 單一職責原則:即一個類要集中在單一的職責上。
- 迪米特法則: 一個類知道其他類的東西越少越好。
- 裡氏替換原則:即子類能替換父類的位置,意思是父類的方法,子類不能改變的一種思想。
- 依賴倒置原則:即盡量依賴于接口而不是對象,減少耦合。
- 組合原則:盡量使用合成/聚合達到複用,盡量少用繼承。
- 接口分離原則:一個接口盡量功能是單一的,避免接口中塞進很不不同的接口。