直接上代码
package interfaceIoC;
/**
* ClassName: Door
* Author: Admini
* Date: 2021/1/11 10:21
*/
public interface Door {
public void open();
public void close();
}
package interfaceIoC;
/**
* ClassName: IronDoor
* Author: Admini
* Date: 2021/1/11 10:23
*/
public class IronDoor implements Door {
@Override
public void open() {
}
@Override
public void close() {
System.out.println("Close ironDoor");
}
}
package interfaceIoC;
/**
* ClassName: WoodDoor
* Author: Admini
* Date: 2021/1/11 10:24
*/
public class WoodDoor implements Door {
@Override
public void open() {
}
@Override
public void close() {
}
}
package interfaceIoC;
/**
* ClassName: Person
* Author: Admini
* Date: 2021/1/11 10:21
*/
public class Person {
private Door door;
public void captureDoor(Door door){
this.door=door;
}
void closeDoor(){
this.door.close();
}
}
package interfaceIoC;
/**
* ClassName: App
* Author: Admini
* Date: 2021/1/11 10:27
*/
//既用到了IoC,又用到了开闭原则
public class App {
public static void main(String[] args)
{
Person person=new Person();
Door door=new IronDoor();
person.captureDoor(door);
person.closeDoor();
}
}