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

依赖倒换原则——Dependence Invrsion Principle

时间:2016-04-24 14:15:36      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

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));//让普通程序员干活
    }

}

 

依赖倒换原则——Dependence Invrsion Principle

标签:

原文地址:http://www.cnblogs.com/abstract-fabulous/p/5426863.html

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