设计模式原则(3):依赖倒置原则
发布时间:2020-05-22 21:06:39 所属栏目:程序设计 来源:互联网
导读:定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 具体到Java中就是“面向接口编程”。 例子: 违法依赖倒置的情况 public class Student {public void read(Book book){System.out.println(学生开始阅读:+
|
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
具体到Java中就是“面向接口编程”。
public class Student {
public void read(Book book){
System.out.println("学生开始阅读:"+book.getName());
}
}
public class Book {
public String getName() {
return "书籍";
}
}
当学生需要阅读网页时,就需要修改Student类,这是很不友好的设计。下面我们看遵守依赖倒置原则的例子。 public interface Person {
public void read(Reader reader);
}
public interface Reader {
public String getName();
}
public class Student implements Person{
@Override
public void read(Reader reader) {
System.out.println("学生开始阅读:"+reader.getName());
}
}
public class Book implements Reader {
public String getName() {
return "书籍";
}
}
public class Website implements Reader {
public String getName() {
return "网页";
}
}
public class Test {
public static void main(String[] args) {
Person student = new Student();
student.read(new Book());
student.read(new Website());
}
}
在read方法中我们使用了接口作为参数。 总结: 1. 每个类最好有接口或者抽象类,或者同时接口和抽象类都有。 2. 变量声明最好是接口或者抽象类。 3. 继承时遵守里氏替换原则。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
