一、軟體開發設計原則:(七大原則) 開閉原則:軟體實體對擴展開放、對修改關閉(用抽象構建架構,用實現擴展細節) 單一職責原則:類或介面的職責要單一、只做一件事,保證功能的單一性、純潔性 依賴倒置原則:要針對抽象層編程,而不要針對具體實現類編程 介面隔離原則:一個介面不要包含過多的職責,應合理劃分,跟 ...
一、軟體開發設計原則:(七大原則)
- 開閉原則:軟體實體對擴展開放、對修改關閉(用抽象構建架構,用實現擴展細節)
- 單一職責原則:類或介面的職責要單一、只做一件事,保證功能的單一性、純潔性
- 依賴倒置原則:要針對抽象層編程,而不要針對具體實現類編程
- 介面隔離原則:一個介面不要包含過多的職責,應合理劃分,跟單一職責原則相輔相成
- 迪米特法則:即最少知道原則,一個對象對其他對象的引用越少越好,比如控制好public、private修飾符範圍
- 里式替換原則:子類可以擴展父類的功能,但不能改變父類原有的功能
- 合成復用原則:儘量使用對象的組合和聚合關係,少使用繼承關係達到代碼復用的目的
二、使用設計模式和不用設計模式的區別?
- 不用:喝酒唱歌,人生真爽。
- 使用:對酒當歌,人生幾何?
三、為什麼要學設計模式?
- 寫出優雅的代碼
- 更好地重構項目
- 經典框架都在用設計模式解決問題
四、23種設計模式
設計模式分為三大類:
- 創建型模式,共5種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
- 結構型模式,共7種:適配器模式、裝飾者模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
- 行為型模式,共11種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
五、舉例Spring源碼中用到的設計模式
- 工廠模式:BeanFactory
- 裝飾者模式:BeanWrapper
- 代理模式:AopProxy
- 單例模式:ApplicationContext
- 委派模式:DispatcherServlet
- 策略模式:HandlerMapping
- 適配器模式:HandlerAdapter
- 模板方法模式:JdbcTemplate
- 觀察者模式:ContextLoaderListener
六、後面講解的設計模式思路
需要特別聲明的是,設計模式從來都不是單個設計模式獨立使用的。在實際使用中,通常是多個設計模式混合使用,你中有我,我中有你。
會圍繞經典框架Spring所使用的設計模式來講解。
- Spring IOC:工廠、單例、裝飾者
- Spring AOP:代理、觀察者
- Spring MVC:委派、適配器
- Spring JDBC:模板方法
補充:不要為了套用設計模式而使用設計模式,而是在業務上遇到問題時,很自然地想到設計模式作為一種解決方案。