Design Pattern of Curriculum Design 3-4 Dependency Inversion Principle succinctly explain + coding

1 The course explains

2 Code Walkthrough

2.1 Non-oriented programming interface

2.2 parameter passing oriented programming interface 1

2.3 constructor oriented programming interface 2

2.4 Method 3 set oriented programming interface

 

1 The course explains

2 Code Walkthrough

2.1 Non-oriented programming interface

Disadvantages:  

Test categories:

package com.geely.design.principle.dependencyinversion;

public class Test {
    //v1.1  普通方法调取java类
    public static void main(String[] args) {
        Geely geely = new Geely();
        geely.studyJavaClass();
        geely.studyPreClass();
    }
}

 

Entity classes:

package com.geely.design.principle.dependencyinversion;

public class Geely {
    public void studyJavaClass(){
        System.out.println("Geely Study Java Lesson");
    }

    public void studyPreClass(){
        System.out.println("Geely Study Pre Lesson");
    }

}

 

Print Results:

Geely Study Java Lesson
Geely Study Pre Lesson

Process finished with exit code 0

 

2.2 parameter passing oriented programming interface 1

Disadvantages:

Test categories:

package com.geely.design.principle.dependencyinversion;

public class Test {
    //v1.1  普通方法调取java类
    /*public static void main(String[] args) {
        Geely geely = new Geely();
        geely.studyJavaClass();
        geely.studyPreClass();
    }*/

    //v1.2  面向接口编程 传参
    public static void main(String[] args) {
        Geely geely = new Geely();
        geely.studyImoocClass(new JavaCourse());
        geely.studyImoocClass(new PreCourse());
    }
}

 

Entity classes:

package com.geely.design.principle.dependencyinversion;

public class Geely {
    public void studyJavaClass(){
        System.out.println("Geely Study Java Lesson");
    }

    public void studyPreClass(){
        System.out.println("Geely Study Pre Lesson");
    }

    public void studyImoocClass(Icourse icourse){
        icourse.studyClass();
    }


}

 

Course Class 1:

package com.geely.design.principle.dependencyinversion;

public class JavaCourse implements  Icourse{
    @Override
    public void studyClass() {
        System.out.println("Geely Study Java Lesson");
    }
}

 

Course categories:

package com.geely.design.principle.dependencyinversion;

public class PreCourse implements Icourse{
    @Override
    public void studyClass() {
        System.out.println("Geely Study Pre Lesson2");
    }
}

 

Course Interface:

package com.geely.design.principle.dependencyinversion;

public interface Icourse {
    void studyClass();
}

 

Print log:

Geely Study Java Lesson
Geely Study Pre Lesson2

Process finished with exit code 0

 

2.3 constructor oriented programming interface 2

2.4 Method 3 set oriented programming interface

Guess you like

Origin www.cnblogs.com/1446358788-qq/p/10962800.html