依赖倒转原则
高层模块不要依赖低层模块,二者都应该依赖其抽象。
抽象不要依赖细节,细节该依赖抽象。
抽象就是抽象类或接口,细节就是具体实现类。
接口和抽象类的价值体现在实现。
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都是同过定义成员变量然后修改成员变量的。
来源:CSDN
作者:weixin_zw654748898
链接:https://blog.csdn.net/weixin_45731789/article/details/103463036