设计模式原则之依赖倒转原则

我们两清 提交于 2019-12-13 08:37:01

依赖倒转原则

高层模块不要依赖低层模块,二者都应该依赖其抽象。
抽象不要依赖细节,细节该依赖抽象。

抽象就是抽象类或接口,细节就是具体实现类。
接口和抽象类的价值体现在实现。

public class YiLaiDaoZhuang {
	public static void main(String[] args) {
		Person p=new Person();
		p.receive(new Email());
		
        //依赖倒转原则改进
		$Person $p=new $Person();
		$p.receive(new $Email());
		$p.receive(new WeiXin());
	}
}

class Email{
	public String getInfo() {
		return "电子邮件信息:hello,world";
	}
}

class Person{
	public void receive(Email email) {
		System.out.println(email.getInfo());
	}
}


//引入接口,依赖接口。依赖接口稳定性是比较好的。
//使用依赖倒转原则。使用接口依赖抽象,不依赖具体细节。
interface Receiver{
	public String getInfo();
}

class $Email implements Receiver{
	public String getInfo() {
		return "电子邮件信息:hello,world";
	}
}

class WeiXin implements Receiver{

	@Override
	public String getInfo() {
		return "微信信息:你好";//依赖接口实现了功能的扩展
	}
	
}

class $Person{
	public void receive(Receiver receiver) {
		System.out.println(receiver.getInfo());
	}
}

依赖关系的传递方法

1.接口传递

2.构造方法传递

3.setter方法传递就是set方法

2 3都是同过定义成员变量然后修改成员变量的。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!