通过接口传递依赖示例
package src.inversion;
/*
依赖倒转原则
面向接口编程
高层模块不依赖于低层模块,二者都依赖于抽象
抽象不依赖于细节,细节依赖于抽象
抽象是指接口和抽象类,细节是指实现类
依赖倒转
传统:
高层依赖低层
倒转后:低层依赖于抽象,高层也依赖于抽象,细节也依赖于抽象
倒转后:低层依赖于抽象,高层也依赖于抽象,细节也依赖于抽象
核心是:抽象,即面向接口编程
*/
/* 通过接口传递实现依赖 */
public class Inversion3 {
interface ITV{
public void play();
}
interface IOpenAndClose{
public void open(ITV tv);
}
class HaierTV implements ITV{
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("Haier TV is playing");
}
}
class OpenAndClose implements IOpenAndClose{
@Override
public void open(ITV tv) { /* <- */
// TODO Auto-generated method stub
tv.play();
}
}
}