开放-封闭原则
对模块、类、函数扩展开发、对修改关闭。强调使用抽象构建框架,用实现扩展细节,从而提高软件系统的复用性和扩展性。开闭原则是面向对象设计中最基础的设计原则,指导我们如何构建稳定灵活的系统。
例如:在版本更新的时候,尽可能的不修改已有源代码,通过新增类来扩展功能。
/**
-
支付
*/
public interface Payment {/**
- 扣款
- @param amount 金额
- @return
*/
String pay(int amount);
}
public class Alipay implements Payment{
public String pay(int amount) {
return "扣款"+amount+"元";
}
}
public class DiscountAlipay extends Alipay{
/**
* 打折优惠
* @param totalPrice
* @param discountAmount
* @return
*/
public String discount(int totalPrice, int discountAmount){
return pay(totalPrice - discountAmount);
}
}