目录
简介
开闭原则(Open Closed Principle),简称OCP。
定义
软件实体应该对扩展开放,对修改关闭。何为软件实体?主要包括项目或软件产品按照一定的逻辑规则划分的模块,抽象,类,方法。实质是通过扩展来实现变化。
举例
一年一度的11又要来了,鸡冻哇。要是平时物品是正常售出,就像这样
public interface IGood {
public String getName();
public int getPrice();
}
public class Good implements IGood {
private String name;
private int price;
public Good(String _name, int _price) {
name = _name;
price = _price;
}
public String getName() {
return name;
}
public int getPrice() {()
return price;
}
}
public class soldGoods() {
private final static ArrayList<IGood> goodList = new ArrayList<>();
static {
goodList.add(new Good("牙刷", 3));
goodList.add(new Good("薯片", 10));
}
public static void main(String[] args) {
for(IGood good : goodList) {
System.out.pirntln(good.getName + ":" + good.getPrice + "元");
}
}
}
但现在是11呀,打折,锦鲤...
public class offGood extend Good {
public offGood(String _name, int _price) {
super(_name, _price);
}
@Override
public int getPrice() {
int price = super.getPrice();
int offPrice = 0;
if(price > 100) {
offPrice = price*80/100;
}else {
offPrice = price*70/100;
}
return offPrice;
}
}
这时只需要把主函数中staic内容进行修改即可
static {
goodList.add(new offGood("牙刷", 3));
goodList.add(new offGood("薯片", 10));
}