设计模式1——设计模式的原则
1.從面向對象說起
~~~~~~??????變化是代碼復用的天敵,面向對象的設計語言的優勢就是抵御變化!這里的所謂抵御變化,不是說采用面向對象的設計語言,就沒有變化,而是將變化的范圍降到最小。
~~~~~~??????之前我們所認識的面向對象的語言,具有封裝、繼承和多態三大特性,但這是面向對象的底層思維;
~~~~~~??????從抽象思維認識面向對象,它首先要能隔離變化:從宏觀的角度來看,面向對象的語言更能適應軟件帶來的變化,將這種變化的影響降到最低,
~~~~~~??????其次面向對象要求各個類之間各司其職:從微觀的角度來看,面向對象更強調各個類各個承擔的責任,各個類之間各司其職,變換導致的新增類型不應該影響原有的類,一般使用C++多態機制實現這種“各司其職”,接口一致,但是實現不一。
2.對象究竟是什么?
~~~~~~??????從語言的角度來看,對象封裝了代碼和數據;
~~~~~~??????從規格的角度來看,對象是一系列的可被使用的公共接口;
~~~~~~??????從概念的角度來看,對象是某種擁有責任的抽象
3.面向對象的設計原則(8個)
~~~~~~?????? 1.依賴倒置原則
~~~~~~~~~~??????????高層模塊不應該依賴于低層模塊,二者都應該依賴于抽象;
~~~~~~~~~~??????????抽象不應該依賴于實現細節,而實現細節應該依賴于抽象;
~~~~~~?????? 2.開放封閉原則
~~~~~~~~~~??????????對拓展開放,對修改封閉;
~~~~~~~~~~??????????類的模塊應該是可拓展的,但是不可修改;
~~~~~~?????? 3.單一職責原則
~~~~~~~~~~??????????相同的責任不要分散到不同的類中;
~~~~~~~~~~??????????避免一個類承擔不同的責任
~~~~~~?????? 4.替換原則
~~~~~~~~~~??????????子類能夠替換它的父類
~~~~~~?????? 5.接口隔離原則
~~~~~~~~~~??????????不要給客戶程序提供它們用不到的方法,接口應該盡量小而完備。
~~~~~~?????? 6.優先使用對象組合而不是類繼承
繼承某種程度上會破壞封裝性,父類子類間的耦合性高,而對象組合不會出現這種問題。~~~~~~?????? 7.封裝變化點
封裝的最高境界是封裝變化點,一端變化,一端不變化~~~~~~?????? 8.針對接口編程,不針對實現編程
總結
以上是生活随笔為你收集整理的设计模式1——设计模式的原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6.4电子邮件
- 下一篇: 笔记:数据绑定表达式(一)