程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合
反例
public class Customer {
public void shopping (YanTaShop shop) {
System.out.println(shop.sell());
}
}
以上表示顾客在 “雁塔店” 进行购物,假如再加入一个新的店铺 “高新店”,表示修改如下
public class Customer {
public void shopping (GaoXinShop shop) {
System.out.println(shop.sell());
}
}
优化
public class Customer {
public void shopping (Shop shop) {
System.out.println(shop.sell());
}
}
interface Shop{
String sell();
}