Java设计原则之依赖倒置原则

依赖倒置原则是指程序的设计要依赖于抽象(接口或抽象类),不要依赖于具体实现。这个原则要求我们使用接口或抽象类来声明变量类型、方法参数类型、方法返回值类型、对象类型等。其核心思想就是:面向接口编程,而不是面向实现类编程。 以购买食品为例,定义一个Person类:

public class Person {
          
   
    public void buy(Hamburger hamburger) {
          
   
        hamburger.eat();
    }
}

上述Person类的buy方法表示一位顾客在购买汉堡,现在顾客又要购买薯条,我们就得修改方法的参数:

public class Person {
          
   
    public void buy(Chips chips) {
          
   
        chips.eat();
    }
}

这种设计模式显然不符合开闭原则。同时,buy方法的参数类型是以实现类作为参数,不是以接口或者抽象类为参数,也不符合依赖倒置原则。所以我们要抽象出一个接口IDishes作为参数,汉堡类和薯条类都作为接口的实现类。

public interface IDishes {
          
   

    void eat();
}
public class Person {
          
   
    public void buy(IDishes iDishes) {
          
   
        iDishes.eat();
    }
}

这样设计就可以使我们的系统稳定的多,一般顾客要点其它食品,就可以新建个食品类即可,符合开闭原则,提高了程序的扩展性。

经验分享 程序员 微信小程序 职场和发展