物件導向之 開閉原則

2022-08-27 02:36:12 字數 1599 閱讀 2183

我覺得開閉原則,就是對擴充套件開放對修改關閉,在我們寫**過程中,**「寫死」,就是因為沒有遵循開閉原則來實現**。就好比蓋房子一樣,地基就好比你的基礎類,地基上面的房子就好比你的實現類,這時候房主說在房子上加一些修飾導致你必須修改地基,如果你去改變地基,你上面的房子都會受到影響,這時候你就會修補房子,讓房子不會因為地基的修改而倒塌。如果這時候房主在說一些新的需求,而你的地基不足以支撐房主的需求,這時候你就可能要推倒重蓋,為什麼造成這種情況,就是因為你當初在搭建地基的時候沒有遵循開閉原則,不支援對新需求的進行擴充套件。

下面用** 說說開閉原則的好處

class house

int()

//地基

base()

//牆壁

wall()

//房頂

roof()}//

建立普通民房

new house('普通民房')

//搭建普通民房流程:

//搭建地基

//搭建牆壁

//搭建房頂

house就是我建立的乙個基礎類,能製造出乙個普通民房,如果我用它建立乙個別墅那?別墅是不是得有陽台啊(我朋友工地得想抬槓找我,我幫你找份兼職),新需來了,然後我就在基礎類上新增乙個搭建陽台
class house}//

建立普通民房

new house('普通民房')

//建立別墅

new house('別墅')

//搭建普通民房流程:

//搭建地基

//搭建牆壁

//搭建房頂

//搭建陽台

//搭建別墅流程:

//搭建地基

//搭建牆壁

//搭建房頂

//搭建陽台

上面看到 普通民房怎麼會有陽台那,這就是沒有對修改得關閉,造成了普通民房也有了陽台。那普通民房肯定不能有陽台啊,但是我也得建造別墅帶陽台呀,這時候我們就需要了對其進行擴充套件

class villa extends house

//陽台

balcony()}//

建立普通民房

new house('普通民房')

//建立別墅

new villa('別墅')

//搭建普通民房流程:

//搭建地基

//搭建牆壁

//搭建房頂

//搭建別墅流程:

//搭建地基

//搭建牆壁

//搭建房頂

//搭建陽台

我建立了villa類對基礎類進行了擴充套件,並且沒有對基礎類進行修改,符合了開閉原則得要求,實現了既能建造普通房屋,也通過擴充套件建造了別墅,避免了民房也出現陽台得現象。

在我們建立基礎類時,我們要想到 建造房屋共同得特性,明確制定基礎類之後不允許在進行修改,所以在我們寫**的時候不要著急去實現**,要想到以後擴充套件得可能性,預留擴充套件介面,讓你的**能夠支撐住新的需求,還有不要修改

基礎類,修改基礎類得時候,會影響你其他依賴基礎的類,然後你就要去改動你依賴基礎類的其他類,造成你修改**的痛苦,最後可能就需要**的重構,所以寫**的時候不要怕麻煩,要想好怎麼寫才能更好的擴充套件。

最後在說一遍 對修改關閉,對擴充套件開放

物件導向設計原則 開閉原則

在軟體開發中,為了提高軟體系統的可維護性和可復用性,增加軟體的可擴充套件性和靈活性,程式設計師要盡量根據 7條原則來開發程式,從而提高軟體開發效率 節約軟體開發成本和維護成本。我們將在下面的幾節中依次來介紹這 7 條原則,本節首先介紹開閉原則。開閉原則 open closed principle,o...

物件導向設計原則 開閉原則

軟體實體應當對擴充套件開放,對修改關閉 這裡的軟體實體包括以下幾個部分 專案中劃分出的模組 類與介面方法 開閉原則的含義是 當應用的需求改變時,在不修改軟體實體的源 或者二進位制 的前提下,可以擴充套件模組的功能,使其滿足新的需求。具體來說就是你應該通過擴充套件來實現變化,而不是通過修改原有的 來實...

物件導向設計原則 開閉原則

唯一不變的是不斷的變化,在軟體開發中應該對需求的變化持開放態度,我們要做的就是如何將這種變化對我們現有的成果帶來最小的衝擊。開閉原則直接面對物件導向程式的目標擴充套件性和可維護性,要求對擴充套件開放,對修改關閉 即在不修改原有 的情況下改變模組的行為。該原則是物件導向程式設計的總原則,也是度量程式設...