三、单一职责原则、开放-封闭原则、依赖倒转原则
生活随笔
收集整理的這篇文章主要介紹了
三、单一职责原则、开放-封闭原则、依赖倒转原则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、單一職責原則 1、定義:就一個類而言,應該僅有一個引起它變化的原因。 2、為什么要?:如果一個類承擔的職責過多,就等于把這些職責耦合在一起,一個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。 3、軟件設計真正要做的許多內容,就是發現職責并把職責相互分離。 如果你能想到多余一個動機去改變一個類,那么這個類就具有多于一個原則。 4、示例:設計俄羅斯方塊的游戲 可以分為游戲邏輯和界面表示邏輯。 游戲邏輯——數組每一項的值改變。 界面表示邏輯——根據數組的數據進行繪制和擦除,或根據鍵盤命令調用數組的相應方法進行改變。 二、開放-封閉原則(The Open-Closeed Principle,OCP) 1、定義:軟件實體(類、模塊、函數等等)應該是可以擴展,但是不可修改。 對擴展是開放的,對修改是封閉的。 2、作用:面對需求的改變卻可以保持相對穩定,從而使得系統可以在第一個版本后不斷推出新的版本。 ?貫穿面向對象編程始終:可維護、可擴展、可復用、靈活性好。 3、變化時必然的:無論模塊是多么封閉,都會存在一些無法對之封閉的變化。 4、什么時候應對變化呢?設計人員必須對于他設計的模塊應該讀哪種變化封閉做出選擇。他必須猜測出最有可能發生的變化種類,然后構造抽象來隔離那些變化。 5、怎么應對變化呢?創建抽象來隔離以后發生的同類變化。 例如:重構程序,增加一個抽象的類。 6、原則:(1)對程序的改動是通過增加新代碼進行,而不是更改現有的代碼。 (2)發現變化越早越好:我們希望是在開發工作展開不久就知道可能發生的變化。查明可能發生變化所等待的時間越長,要創建正確地抽象就越困難。 7、開放-封閉原則是,面向對象設計的核心所在。開發人員應該進度程序中呈現出頻繁變化的那些部分作出抽象。但是切忌過度! 8、示例:彈性上班制度,工作時間不固定,商夠時間即可:對工作時間的修改關閉,對時間制度的擴展開放。 三、依賴倒轉原則 ——面向對象:強內聚、松耦合。 1、定義:A:高層模塊不應該依賴底層模塊,兩個都應該依賴抽象。 B.?抽象不應該細節,細節應該依賴抽象。
- 說白了,就是要針對接口編程,不要對實現編程。
- 定義:子類必須能夠替換掉他們父親的類型。
- 說白了:一個軟件實體如果使用的是一個父類的話,那么一定適用其子類,而且它察覺不出父類對象和子類對象的區別。也就是說,在軟件里面,把服了都替換為它的子類,程序的行為沒有變化。
- 極端的例子:如果程序中定義“鳥類”:可以飛。由于企鵝不會飛,所以——企鵝不能繼承鳥類。
- 作用:有了這個原則,使繼承復用成為了可能:只有當子類可以替換掉父類,軟件單位的功能不受到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。
- ?而卻正是由于子類的可替換性才能使用使用父類類型的模塊在無需更改的情況下可以擴展。
轉載于:https://www.cnblogs.com/zuolanlan/p/9998629.html
總結
以上是生活随笔為你收集整理的三、单一职责原则、开放-封闭原则、依赖倒转原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作INI文件函数
- 下一篇: 函数计算 Python 连接 SQL S