開閉原則(open closed principle)是程式設計中最基礎,也是最重要的設計原則。程式設計中遵循其他原則以及使用設計模式的目的就是遵循開閉原則。
乙個軟體實體如類,模組和函式應該對(提供方)擴充套件開放,對(使用方)修改關閉。用抽象構建架構,用實現擴充套件細節。當軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的**來實現變化。
實現乙個畫圖形的功能,類圖設計如下:
第一種解決方案:傳統方案
**實現如下:
public class shape
public class rectangle extends shape
}
public class circle extends shape
}
public class graphiceditor else if(2 == s.type)
}public void drawrectangle()
public void drawcircle()
}
public class test()
}
上面的實現方式比較好理解,簡單易操作,但是如果這時要增加乙個圖形種類三角形,我們需要修改的地方很多,這就違反了開閉原則,即對擴充套件開放,對修改關閉。當我們給類新增新功能的時候,應該盡量不修改**,或者盡可能少修改**。
第二種解決方案:使用開閉原則
對上面**改進思路:把建立shape類做成抽象類,並提供乙個抽象的draw方法,讓子類去實現即可。這樣有新的圖形種類時,只需要讓新的圖形類繼承shape,並實現draw方法即可。使用方的**就不需要修改,滿足開閉原則。**如下:
public abstract class shape
public class rectangle extends shape
public void draw()
}
public class circle extends shape
public void draw()
}
public class graphiceditor
}
public class test()
}
注:類shape、rectangle、circle是提供方,類graphiceditor是使用 設計模式 七大設計原則之開閉原則
在軟體開發中,為了提高軟體系統的可維護性和可復用性,增加軟體的可擴充套件性和靈活性,程式設計師要盡量根據 7 條原則來開發程式,從而提高軟體開發效率 節約軟體開發成本和維護成本。我們將在下面的幾節中依次來介紹這 7 條原則,本節首先介紹開閉原則。開閉原則 open closed principle,...
設計模式七大原則之開閉原則
簡介 開閉原則是程式設計過程中最基礎 最重要的原則,前面講到的幾個原則,也都是為了實現開閉原則。那麼他是如何開放,又是如何關閉的呢?例項展示 這是乙個用於繪圖的類 使用方 class graphiceditor else if shape.my type 2 else if shape.my typ...
設計模式之七大原則 開閉原則
主要內容 提供方 擴充套件開放,使用方 修改關閉 盡量通過擴充套件實現變化,而不是修改,避免對原來的系統造成威脅 例子class graphiceditor else if s.m type 2 public void drawrectangle shape r public void drawci...