開放-封閉原則:說是軟件實體(類、模塊、函數(shù)等等)應(yīng)該是可以擴展,但是不可修改的。
這塊的意思就比較清楚了,我們在設(shè)計軟件中應(yīng)該讓我們的代碼具有同類項的擴展特性,但是同類項的擴展僅僅是擴展而不是多方聯(lián)系。換句話說對程序的改動是通過增加新代碼進行的,而不是改進現(xiàn)有代碼。開放-封閉原則是面向?qū)ο笤O(shè)計的核心所在,遵循這個原則可以帶來面向?qū)ο蠹夹g(shù)的巨大好處,也就是可維護、可擴展、可復(fù)用、靈活性好。開發(fā)人員一應(yīng)該僅對程序中頻繁出現(xiàn)的變化做抽象處理。《大話設(shè)計模式-程杰》考慮以上對于開放封閉原則的描述,我們在代碼中應(yīng)該如何實踐?首先要有擴展的特性,擴展那么我們勢必要抽象接口,然后讓類似的類去實現(xiàn)具體的功能,這樣一處修改不會牽涉到其他的類。因此我們在寫代碼的時候要善于提取公因式,并將公因式以接口形式保留。對于新功能直接通過新增接口或者通過新類去實現(xiàn)。