七大原则之 开闭原则
- 开闭原则:
a. 对扩展新功能是开放
b. 对修改原有功能关闭
- 比如:
有一个刮胡刀,刮胡刀的作用就是刮胡子,现在想让刮胡刀具备吹风机能力
违反开闭原则的做法就是: 把吹风机功能加上了, 可是不能刮胡子了
符合开闭原则的做法就是: 把吹风机功能加上了, 且没有影响以前的刮胡子功能
反例:
//写一个类
public class Car {
private String brand;
private double price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
这时,突然想对车辆打八折,于是直接在 Car类
直接修改
public double getPrice() {
//这是返例,违反了开闭原则,因为这里修改了源代码
return price * 0.8;
}
正例:
写一个类继承Car类,然后重写需要改的price的方法
public class DiscountCar extends Car {
@Override
public double getPrice() {
return super.getPrice() * 0.8;
}
}
- 补充:
如果,一个类从头到尾都是你自己创建编写的,那么你可以随时随地改源代码,因为作者就是你
如果,一个类,不是你写的,而是别人写的,就不能修改别人的代码了,而要符合开闭原则