1、开放-封闭原则
对模块、类、函数扩展开发、对修改关闭。强调使用抽象构建框架,用实现扩展细节,从而提高软件系统的复用性和扩展性。开闭原则是面向对象设计中最基础的设计原则,指导我们如何构建稳定灵活的系统。
例如:在版本更新的时候,尽可能的不修改已有源代码,通过新增类来扩展功能。
/**
* 支付
*/
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);
}
}
2、依赖倒置原则
设计代码结构时,高层模块不应该依赖底层的模块,二者应该依赖其抽象,让细节依赖抽象。通过依赖倒置原则,可以减少类与类之间的耦合性,提高系统的稳定性,可读性和可维护性,降低修改给