zoukankan      html  css  js  c++  java
  • 设计模式之依赖倒转原则

    基本概念:

    抽象表示的是接口、抽象类。细节就是具体的实现类。接口或抽象类的价值在于指定规范。

    一个反面例子:

    public class DependencyInversion {
        public static void main(String[] args) {
            People people = new People();
            people.receive(new Email());
        }
    }
    
    class Email {
        public String getInfo(){
            return "这是电子邮件信息";
        }
    }
    
    class People {
        public void receive(Email email){
            System.out.println(email.getInfo());
        }
    }

    信息不一定是邮件啊,也可能是qq或者微信,这个时候时候就要新增类,People也要新增其他的接收方法。所以改成以下方式:

    public class DependencyInversion {
        public static void main(String[] args) {
            People people = new People();
            people.receive(new Email());
            people.receive(new WeiXin());
        }
    }
    
    interface IMessage{
        public String getInfo();
    }
    class Email implements IMessage{
        public String getInfo(){
            return "这是电子邮件信息";
        }
    }
    class WeiXin implements IMessage{
        public String getInfo() {
            return "这是微信信息";
        }
    }
    class People {
        public void receive(IMessage iMessage){
            System.out.println(iMessage.getInfo());
        }
    }

    1.通过接口:

    2.通过构造器

    3、通过setter方法:

    总结:

  • 相关阅读:
    Cygwin配置总结
    javap 指令集
    超好用的Vim配置
    超过 130 个你需要了解的 vim 命令
    21、面向对象
    20、MySQLdb
    深入java字符串原理及其效率分析
    数据库执行计划
    SQL中EXISTS的用法
    mybatis之foreach用法
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/12380387.html
Copyright © 2011-2022 走看看