OCP原則——開閉原則

娛樂界祖師爺發表於2020-12-12

OCP

英文:Open-Closed Principle

中文:開閉原則

是什麼

我們要讓程式碼同時滿足對擴充套件開放、對修改關閉著兩個屬性。

對擴充套件開放表示程式碼的行為可以擴充套件。

對修改關閉表示當對程式碼的行為進行擴充套件時,其他程式碼完全不受到影響。

程式碼如果同事滿足這兩個屬性,就可以在不影響既有程式碼的前提下擴充套件功能。

為什麼

不論什麼軟體,只要它還在生命週期內,就一定會發生變化。而且軟體的壽命遠比我們想象的要長。因此,我們設計的軟體要既能適應變化,又能保持長期的穩定。

這就要求程式碼能夠靈活應對變化,對擴充套件開放,對修改關閉,如果能滿足上述要求,就算需求發生變化,我們只要給程式碼新增新的行為,就能毫無風險的完成對軟體的修改。

怎麼做

我們要給程式碼新增介面。

在設計具有某項功能的模組時,如果讓模組的使用者客戶端直接呼叫模組的提供者伺服器,我們就可以說這個設計是死板的,因為在這種情況下,如果想使用其他伺服器,還需要修改客戶端。

因此,我們在客戶端和伺服器之間為模組的使用者設定“客戶端介面”,這個客戶端介面由伺服器實現。

這樣一來,在新增擁有新功能的伺服器時,只要該伺服器上有客戶端介面,客戶端就可以直接呼叫新伺服器,我們就不用再修改程式碼了,也就是說,我們可以在不修改當前程式碼的前提下新增新功能。

相關文章