開閉原則
對(duì)擴(kuò)展開放但惶,對(duì)修改關(guān)閉
強(qiáng)調(diào)用抽象構(gòu)建框架耳鸯,用實(shí)現(xiàn)擴(kuò)展細(xì)節(jié)湿蛔,從而提高軟件的可復(fù)用性和可維護(hù)性
開閉原則的核心思想就是 面向抽象編程
- 課程接口
public interface ICourse {
Integer getId();
String getName();
Double getPrice();
}
- Java課程類
public class JavaCourse implements ICourse {
private Integer id;
private String name;
private Double price;
@Override
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Override
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
}
- 有優(yōu)惠的java課程
public class JavaDiscountCourse extends JavaCourse {
public Double getOrignPrice(){
return super.getPrice();
}
public Double getPrice(){
return super.getPrice() * 0.5;
}
}
使用繼承的方式,在不改變?cè)创a的前提下县爬,實(shí)現(xiàn)了價(jià)格優(yōu)惠的功能阳啥!
image.png