美文网首页
七个原则2-依赖倒置原则

七个原则2-依赖倒置原则

作者: CC晨_程序小生 | 来源:发表于2018-12-25 14:22 被阅读0次

    七个原则2-依赖倒置原则

    • 定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象
    • 抽象不应该依赖细节,细节应该依赖抽象
    • 针对接口编程,不要针对实现编程
    • 优点:可以减少类间的耦合性、提高系统的稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险

    示例-依赖倒置原则UML

    示例-依赖倒置原则UML

    ICourse接口

    public interface ICourse {
        void studyCourse();
    }
    

    JavaCourse类

    public class JavaCourse implements ICourse {
        @Override
        public void studyCourse() {
            System.out.println("cc学习Java的课程");
        }
    }
    

    FECourse

    public class FECourse implements ICourse {
        @Override
        public void studyCourse() {
            System.out.println("cc学习前端的课程");
        }
    }
    

    Cc类

    public class Cc {
        private ICourse iCourse;
    
        public Cc setICourse(ICourse iCourse){
            this.iCourse = iCourse;
            return this;
        }
    
        public void studyCourse(){
            iCourse.studyCourse();
        }
    }
    

    Test类

    public class Test {
        //v1 直接对象方法实现
    //    public static void main(String[] args) {
    //        Cc cc = new Cc();
    //        cc.studyJavaCourse();
    //        cc.studyFECourse();
    //    }
    
        //v2 方法传参实现
    //    public static void main(String[] args) {
    //        Cc cc = new Cc();
    //        cc.studyCourse(new JavaCourse());
    //        cc.studyCourse(new FECourse());
    //    }
    
        //v3 构造传参实现
    //    public static void main(String[] args) {
    //        Cc cc = new Cc(new JavaCourse());
    //        cc.studyCourse();
    //    }
        //v4 增加设置方法
        public static void main(String[] args) {
            Cc cc = new Cc();
            cc.setICourse(new JavaCourse())
                    .studyCourse();
            cc.setICourse(new FECourse())
                    .studyCourse();
        }
    }
    

    相关文章

      网友评论

          本文标题:七个原则2-依赖倒置原则

          本文链接:https://www.haomeiwen.com/subject/lgrflqtx.html