依赖倒转原则
Posted alexliuf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了依赖倒转原则相关的知识,希望对你有一定的参考价值。
依赖倒转原则:通俗点就是,一个类和其他的类建立关系的时候,尽可能的与它们的父类建立关系,避免与子类建立联系。在设计变量时,能用父类尽量用父类。
下面是一道经典例题,我们通过抽象出灯泡类即红灯黄灯各种灯的父类,来让它与台灯建立联系,这样,即使更换灯泡也不用再修改台灯类的代码,并且我们
将发光方法抽象出来,让他的子类各种灯泡去实现他的发光方法。
定义一个台灯类,里面有一个开灯方法。
定义一个灯泡类,该类为抽象类,定义发光的方法,它有两 个子类,红灯泡和黄灯泡。
定义一个Test类,写上主函数创建台灯对象调用开灯方法, 实现传入红灯泡打印发红光,传入黄灯泡打印发黄光。
public class TestLight{//测试类 public static void main(String[] args) { Bulb redbulb = new RedBulb();//创建一个红灯泡对象 Bulb yellowbulb = new YellowBulb();//创建一个黄灯泡对象 Light light = new Light();//创建一个台灯对象 light.setLight(redbulb);//将红灯泡放进台灯里面 light.bulbPower();//打开台灯开关 light.setLight(yellowbulb);//将黄灯泡放进台灯里面 light.bulbPower();//打开台灯开关 } } class Light{//台灯 private Bulb bulb;//灯泡属性 public Light(){}//构造方法 public Bulb setLight(Bulb bulb){//修改灯泡的方法 this.bulb = bulb; return bulb; } public void bulbPower(){//台灯开灯方法 bulb.shine();//调用灯泡发光 } } abstract class Bulb{//灯泡抽象类 public abstract void shine();//抽象发光方法 } class RedBulb extends Bulb{//红灯泡继承灯泡类 public void shine(){//实现灯泡发光方法 System.out.println("红灯发红光"); } } class YellowBulb extends Bulb{ public void shine(){ System.out.println("黄灯发黄光"); } }
以上是关于依赖倒转原则的主要内容,如果未能解决你的问题,请参考以下文章