例如:在版本更新的时候,尽可能的不修改已有源代码,通过新增类来扩展功能。
/**
支付 */ 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); }}
