設計模式之開閉原則

開閉原則(Open-Closed Principle,OCP):是指一個軟件實體(如類、模塊、函數)應該對擴展開放,對修改關閉。開閉是對擴展和修改兩個行爲的一個原則。強調的是用抽象構建框架,用實現擴展細節,提高了軟件系統的複用性好可維護性。
開閉原則的核心思想就是面向抽象編程,如以下代碼:
1.先寫一個課程接口
public interface ICourse{
    Integer getId();
    String getName();
    Doble getPrice();
}

2.課程有Java,大數據,人工智能,Python 等。然後創建一個 Java 課程類 JavaCourse.
public class JavaCourse implements ICourse{
    private Integer Id;
    private String  name;
    private Double price;
    public JavaCourse( Integer id, String name,Double price){
        this.Id = id;
        this.name = name;
        this.price = price;
    }
    public Integer getId(){
        return this.Id;
    }
    public String getName(){
        return this.name;
    }
    public Doble getPrice(){
        return this.price;
    }
}

3.如果我們Java課程需要做活動打折,直接修改JavaCourse中的getPrice()方法,可能會導致其他地方的使用。那如何實現java課程打折功能呢?我們可以新增一個java打折類JavaDiscount.
public class JavaDiscount extends JavaCourse{
    public  JavaDiscount(Integer id, String name,Double price){
        super(id,name,price);
    }
    public Double getOriginPrice(){
        return super.getPrice();
    }
    public Double getPrice(){
        return super.getPrice*0.78;
    }
}

4.如果我們需要對大數據課程進行打折,也可以爲大數據課程添加一個新的打折類BigDataDiscount,這樣就可以在不修改原先的代碼,只需要添加一個新的類就可以實現功能。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章