依赖倒换原则——Dependence Invrsion Principle

1、定义:a,设计系统时用抽象来分析,而不必一开始关注细节

             b.针对接口编程,不要针对实现编程。通过接口进行函数、参数、变量声明,避免实现类自己去做各种声明。

2、实现:如果创建的是动态对象,要使用依赖倒换原则。实现类要去调用接口或抽象类。

3.例:公司有一个管理层,两个程序员分类,如何实现管理层指定某类程序员去工作:

       根据依赖倒换原则,应该定义一个管理层接口,主要用于实现调用程序员,还应该定义一个程序员接口,然后不同类的程序员直接去实现这个接口,管理层实现直接调用程序员接口即可。

(1)管理层接口

public interface IEmloyee {
    public  String code(Icode code);//管理人员让程序员编码,Icode是程序员接口

}

(2)管理层实现,直接调用程序员接口里面的方法

public class Code implements IEmloyee {//管理层接口的实现
    public static String Run="工作。。。。";
    public String code(Icode code) {
         System.out.println(code+"程序员开始工作");
         return code.getRun(Run);
        // TODO Auto-generated method stub
        
    }

}

(3)程序员接口

public interface Icode {//程序员接口
        public String getRun(String run);//已经定义了不同类程序员要实现的方法
}

(4)两类程序员对程序员接口的实现

public class CommenProgrammer implements Icode {//普通程序员
    private static final String Run="JAck";

    @Override
    public String getRun(String Run1) {
        // TODO Auto-generated method stub
        System.out.println("普通程序员开始工作");
        return Run;
    }

}
public class SeniorProgrammer implements Icode{//高级程序员
    public static final String Run="lll";
    @Override
    public String getRun(String run) {
        // TODO Auto-generated method stub
        System.out.println("高级程序员开始工作");
        return Run;
    }

(5)测试类,创建管理员让不同类的程序员工作

public class DIP {
    public   static  void main(String args[]){
        IEmloyee employee=new Code();//创建一个管理员
        Icode code=new SeniorProgrammer();//创建一个高级程序员
        Icode code1=new CommenProgrammer();//创建一个普通程序员
        System.out.println(employee.code(code));//让高级程序员干活
        System.out.println(employee.code(code1));//让普通程序员干活
    }

}

 

转载于:https://www.cnblogs.com/abstract-fabulous/p/5426863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值