设计原则之依赖倒置(写几个类测试一下)
-
//工具接口
-
public interface Tools {
-
-
//工具的用途
-
void fix();
-
}
-
//扳手
-
public class Wrench implements Tools{
-
-
@Override
-
public void fix(){
-
System.out.println("Use wrench fixing...");
-
}
-
}
-
//螺丝刀
-
public class Pliers implements Tools{
-
-
@Override
-
public void fix(){
-
System.out.println("Use pliers fixing...");
-
}
-
}
-
//工人抽象类
-
public abstract class Worker {
-
-
//上层模块不应该依赖低层模块的实现,而应该依赖其抽象
-
//所以这里不依赖具体的工具类,而是工具的接口
-
public abstract void work(Tools tools);
-
}
-
//业务员(工人品种)
-
public class FixWorker extends Worker{
-
-
//抽象不应该依赖细节,细节应该依赖于抽象
-
//在抽象类里,工具不做具体的用途;而在这里重新实现它的方法
-
@Override
-
public void work(Tools tools) {
-
-
}
-
}
-
//测试
-
public class Main {
-
public static void main(String[] args) {
-
Wrench w = new Wrench();
-
Pliers p = new Pliers();
-
Worker worker = new FixWorker();
-
worker.work(p);
-
}
-
}