天天看点

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

依赖倒转原则

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

抽象不要依赖细节,细节该依赖抽象。

抽象就是抽象类或接口,细节就是具体实现类。

接口和抽象类的价值体现在实现。

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都是同过定义成员变量然后修改成员变量的。

继续阅读