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方法:

    总结:

  • 相关阅读:
    ssl握手数据结构
    jQuery基础
    JS语法基础
    Hadoop2.5.2伪分布安装 【图文并茂】
    Hadoop 2.5.2 安装之 系统准备篇(ftp Jdk)
    SQL SERVER2000/2005 (mssql)常用命令
    Hadoop小文件带来的问题以及解决方案
    Hadoop单机模式的安装方法(实验楼版)
    Haddop 安装之 JDK
    HDFS 原理 及 命令
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/12380387.html
Copyright © 2011-2022 走看看