軟件實體(模塊、類、函數等)應該對擴展是開發的,對修改是關閉的。函數
通俗的講就是:軟件功能是能夠擴展的,可是軟件實體是不能夠被修改的。開發
當咱們在代碼中看到else 或者 switch/case 關鍵字的時候,基本能夠判斷違反開閉原則了。it
策略模式、適配器模式、觀察者模式、模板方法模式均可以實現開閉原則,能夠在不一樣場景中解決 if/else 或 switch/case 問題。模板