設計模式學習筆記六 開閉原則

2021-10-06 00:13:23 字數 1505 閱讀 1160

一、介紹

1、在物件導向程式設計領域中,開閉原則規定「軟體中的物件(類,模組,函式等等)應該對於擴充套件是開放的,但是對於修改是封閉的」,這意味著乙個實體是允許在不改變它的源**的前提下變更它的行為。該特性在產品化的環境中是特別有價值的,在這種環境中,改變源**需要**審查,單元測試以及諸如此類的用以確保產品使用質量的過程。遵循這種原則的**在擴充套件時並不發生改變,因此無需上述的過程。

2、開閉原則(open close principle)是程式設計中最基礎,最重要的設計原則。

3、乙個軟體實體如類、模組和函式應該對擴充套件開放(提供方),對修改關閉(使用方),用抽象構建框架,用實現擴張細節

4、當軟體需要變化時,盡量通過擴充套件實體的行為來實現變化,而不是通過修改已有的**來實現變化

二、**實現

1、演示

package com.hao.demo.design.opc;

/** * @author haoxiansheng

* @date 2020-05-12

*/public class opencloseprinciple

}/**

* 1、簡單易操作、易於理解

* 2、違反了開閉原則

*/class graphiceditor else if (shape.m_type == 2) else if (shape.m_type == 3)

}public void drawrectaing(shape shape)

public void drawcircle(shape shape)

public void draw********(shape shape)

}// shape 類 基類

class shape

class rectangle extends shape

}class cricle extends shape

}// 增加乙個三角形

class ******** extends shape

}

2、改進

package com.hao.demo.design.opc;

/** * @author haoxiansheng

* @date 2020-05-12

*/public class opencloseprinciple2

}class graphiceditor2

}abstract class shape2

class rectangle2 extends shape2

}class cricle2 extends shape2

}// 增加乙個三角形

class ********2 extends shape2

}class other extends shape2

}

設計原則利劍六 開閉原則

英文名稱 open closed principle ocp 中文名稱 開閉原則 作 用 開閉原則與前面幾個原則不一樣,這個屬於是精神層面的原則,其目的就是告訴我們要擁抱變化,如何在考慮未來變化的同時來 設計好自己的專案,以及在變化發生的時候,如何來規避風險,使得變更帶來的影響最小化。乙個遵循開閉原...

設計模式六大設計原則之開閉原則

開閉原則 1 定義 乙個軟體實體如類 模組和函式應該對擴充套件開放,對修改關閉。2 問題由來 在軟體的生命週期內,因為變化 公升級和維護等原因需要對軟體原有 進行修改時,可能會給舊 中引入錯誤,也可能會使我們不得不對整個功能進行重構,並且需要原有 經過重新測試。3 解決方案 當軟體需要變化時,盡量通...

設計模式 開閉原則

開閉原則的核心是 對擴充套件開放,對修改關閉 白話意思就是我們改變乙個軟體時 比如擴充套件其他功能 應該通過擴充套件的方式來達到軟體的改變,而不應愛修改原有 來實現變化 軟體系統中包含的各種元件,例如模組 modules 類 classes 以及功能 functions 等等,應該在不修改現有 的基...