国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

開放封閉原則(OCP)

2019-11-17 01:58:44
字體:
來源:轉載
供稿:網友

開放封閉原則(OCP)

開放封閉原則

轉:http://baike.baidu.com/view/2493421.htm轉:http://dev.csdn.net/article/38/38826.shtm  開放封閉原則(OCP,Open Closed PRinciple)是所有面向對象原則的核心。軟件設計本身所追求的目標就是封裝變化、降低耦合,而開放封閉原則正是對這一目標的最直接體現(xiàn)。其他的設 計原則,很多時候是為實現(xiàn)這一目標服務的。  關于開發(fā)封閉原則,其核心的思想是:  軟件實體應該是可擴展,而不可修改的。也就是說,對擴展是開放的,而對修改是封閉的。  因此,開放封閉原則主要體現(xiàn)在兩個方面:  對擴展開放,意味著有新的需求或變化時,可以對現(xiàn)有代碼進行擴展,以適應新的情況。  對修改封閉,意味著類一旦設計完成,就可以獨立完成其工作,而不要對類進行任何修改。  “需求總是變化”、“世界上沒有一個軟件是不變的”,這些言論是對軟件需求最經典的表白。從中透射出一個關鍵的意思就是,對于軟件設計者來說,必須在不需要對原有的系統(tǒng)進行修改的情況下,實現(xiàn)靈活的系統(tǒng)擴展。而如何能做到這一點呢?  只有依賴于抽象。實現(xiàn)開放封閉的核心思想就是對抽象編程,而不對具體編程,因為抽象相對穩(wěn)定。讓類依賴于固定的抽象,所以對修改就是封閉的;而通過面向對象的繼承和對多態(tài)機制,可以實現(xiàn)對抽象體的繼承,通過覆寫其方法來改變固有行為,實現(xiàn)新的擴展 方法,所以對于擴展就是開放的。這是實施開放封閉原則的基本思路,同時這種機制是建立在兩個基本的設計原則的基礎上,這就是Liskov替換原則和合成/ 聚合復用原則。關于這兩個原則。  對于違反這一原則的類,必須進行重構來改善,常用于實現(xiàn)的設計模式主要有Template Method模式和Strategy模式。而封裝變化,是實現(xiàn)這一原則的重要手段,將經常發(fā)生變化的狀態(tài)封裝為一個類。合成/聚合復用原則(CARP)盡量使用合成/聚合、盡量不使用繼承定義:在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達到復用這些對象的目的added by me :注意合成/聚合復用原則也是要使用抽象的!比如實現(xiàn)動態(tài)的功能變更!LSP的定義若對于每一個類型P的對象p1,都存在一個類型C的對象c1,使得在所有針對C編寫的程序P中,用p1替換c1后,程序P的行為功能不變,則C是P的子類型。LSP原則清楚地指出,OOD中IS-A關系是就行為功能而言。行為功能(behavior)不是內在的、私有的,而是外在、公開的,是客戶程序所依賴的。行為功能(behavior)才是軟件所關注的問題!所有派生類的行為功能必須和客戶程序對其基類所期望的保持一致。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 渑池县| 庆元县| 邮箱| 辽阳市| 宜黄县| 辽宁省| 阿拉善盟| 元江| 渭南市| 微山县| 宁河县| 海门市| 英德市| 永泰县| 金阳县| 内乡县| 北川| 青神县| 通榆县| SHOW| 广昌县| 辉县市| 乌拉特后旗| 岗巴县| 张家港市| 甘孜县| 彩票| 五台县| 东港市| 泾川县| 怀仁县| 江安县| 长寿区| 平和县| 桦川县| 腾冲县| 隆安县| 连南| 垣曲县| 安平县| 昌图县|