開閉原則是面向對象設計的一個重要原則,其定義如下:

開閉原則(Open-Closed Principle, OCP):一個軟件實體應當對擴展開放,對修改關閉。即軟件實體應盡量在不修改原有代碼的情況下進行擴展。

在軟件的生命周期內,因為變化、升級和維護等原因需要對軟件原有代碼進行修改時,可能會給舊代碼中引入錯誤,也可能會使我們不得不對整個功能進行重構,并且需要原有代碼經過重新測試。那么勢必會對軟件的開發(fā)帶來額外的風險和成本, 這是OCP原則要規(guī)范設計的一個主要原因,所有的設計原則都是對軟件的開發(fā),設計以及維護帶來好處的,OCP也不例外。

OCP原則是面形對象軟件設計的基本原則,其旨在指導如何構建穩(wěn)定的,靈活的,易于維護的軟件。其實這個原則也是我們面向對象設計的一個終極要求,更是一個引導,在軟件設計過程中要達到OCP原則其實你需要很好的遵守其他的設計原則,換句話說如果其它的設計原則都達到了那么OCP原則自然就符合了,也就是說OCP原則是其他原則綜合使用的一個考量,一個檢驗。

假如我們要設計一個叫做動物的類(Animal)在這個類中我們有一個方法叫Sound, Sound 方法主要用于發(fā)出動物的叫聲,通常我們的設計代碼如下:

    public class Animal
    {        public void Sound(string animal)
        {            switch (animal)
            {                case "dog":
                    System.Console.WriteLine("woof woof woof...");                    break;                case "cate":
                    Console.WriteLine("miaow miaow miaow...");                    break;
            }
        }
    }

客戶端的調用代碼如下:

        		

網友評論