前言
首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。完全的面向接口编程,"java代码"不需要知道是哪个实现类,下面是实验,具体面向接口思想参见
模拟文档操作来理解IOC
先写一个接口
public interface DocumentIO {
public void readDocumend();
public void wrightDocumend();
}
然后是实现类
写两个类,一个操作World一个操作Excle,这两个类分别实现 DocumentIO接口 ,
public class Documend3Word implements DocumentIO {
@Override
public void readDocumend() {
System.out.println("word read");
}
@Override
public void wrightDocumend() {
System.out.println("word wight");
}
}
Excle类同理
管理类
public class Manger {
private DocumentIO document;
public DocumentIO getDocument() {
return document;
}
public void setDocument(DocumentIO document) {
this.document = document;
}
public void readDocument() {
this.document.readDocumend();
}
public void writeDocument() {
this.document.wrightDocumend();
}
}
配置文件
<bean id="manger" class="club.laobainb1314.p06.Manger">
<property name="document">
<!-- 这里指定实现接口的类 -->
<ref bean="world" />
</property>
</bean>
<bean id="world" class="club.laobainb1314.p06.Documend3Word" />
<bean id="excle" class="club.laobainb1314.p06.Documend3Excle" />
测试
@Test
void test07() {
ApplicationContext appc = new ClassPathXmlApplicationContext(XML);
Manger m = (Manger) appc.getBean("manger");
System.out.println("---↓↓↓Spring---");
m.writeDocument();
m.readDocument();
}