面向對象原則之開發封閉原則

前言

面向對象有人分爲五大原則,分別爲單一職責原則、開放封閉原則、依賴倒置原則、接口隔離原則、里氏替換原則。

也有人分爲六大原則,分別爲單一職責原則、開放封閉原則、依賴倒置原則、接口隔離原則、里氏替換原則、迪米特法則。

現在我們來介紹開放封閉原則,也叫開閉原則

概念

開放封閉原則: 軟件實體(模塊、類、函數等)應該可以擴展,但是不可以修改。也就是說軟件對擴展開放,對修改關閉。

需要說明的是,對修改關閉不是說軟件設計不能做修改,只是儘量不要做不必要的修改。怎麼才能做到呢?那就是有相應的擴展性。

其實,軟件有相應的擴展性是好處,但是不能說每個地方都有擴展。反而造成了代碼的臃腫。所以這裏的擴展與修改關閉是有限制的。

開閉原則,可以說是其他五大原則的實現,也是面向對象設計的終極目標。我們也可以說成開閉原則是其他原則的核心。

深入理解

開閉原則其實在大話設計模式中說得非常好,讓人通俗易懂。

它舉了一個例子,我覺得說得非常好。是加減乘除法的例子。

開始需求是做一個加法的操作。後來繼續加入減法、乘法、除法。

開始我們想加法以後可能會做一個需求變更:加入其它的算法法則。所以我們要有一個預判性,這個預判性會導致我們項目以後的擴展性,也會導致如果需求發生變更,程序修改的難易程度。

所以,我們要做一個算法法則的操作類,加減乘除法都繼承此操作接口。再加一個算法法則的客戶端類類操作此算法。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章