码迷,mamicode.com
首页 > 其他好文 > 详细

依赖倒转原则

时间:2020-06-27 15:50:45      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:test   color   string   一个   bst   属性   owb   rgs   end   

依赖倒转原则:通俗点就是,一个类和其他的类建立关系的时候,尽可能的与它们的父类建立关系,避免与子类建立联系。在设计变量时,能用父类尽量用父类。

 

下面是一道经典例题,我们通过抽象出灯泡类即红灯黄灯各种灯的父类,来让它与台灯建立联系,这样,即使更换灯泡也不用再修改台灯类的代码,并且我们

将发光方法抽象出来,让他的子类各种灯泡去实现他的发光方法。

 

定义一个台灯类,里面有一个开灯方法。
定义一个灯泡类,该类为抽象类,定义发光的方法,它有两 个子类,红灯泡和黄灯泡。
定义一个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("黄灯发黄光");
    }
}

 

依赖倒转原则

标签:test   color   string   一个   bst   属性   owb   rgs   end   

原文地址:https://www.cnblogs.com/alexliuf/p/13198499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!