现在有一个computer类还有一个MP3类u盘类,因为computer类要为MP3类和u盘类提供一个usb插入接口,如果没有面向接口的编程,computer类就要为不同的设备提供不同的链接的方法,程序的可维护性变的很差,但是如果我们利用了面向接口的编程方法,我们只要定义一个链接的接口connect,然后让不同的设备实现这个接口,并且重写接口中的方法,现在我们的computer类只要与这个ConnectToUsb接口产生关系就可以了,不用再与具体的设备产生关系,这样就大大降低了类与类之间的耦合性。以后当有需要加入更多的链接设备的时候只需要实现这个接口就可以了。
Computer类:
public class Computer {
private ConnectToUsb connectToUsb;//定义一个接口类型的成员变量
public ConnectToUsb getConnectToUsb() {
return connectToUsb;
}
//接的要赋值
public void setConnectToUsb(ConnectToUsb connectToUsb) {
this.connectToUsb = connectToUsb;
}
public void connect() {
connectToUsb.connect();
}
}
ConnectToUsb接口:
public interface ConnectToUsb {
public abstract void connect();
}
MP3类:
public class MpThree implements ConnectToUsb{
@Override
public void connect() {
System.out.println("MP3 To Connect!");
}
}
测试类:
public class Test {
public static void main(String[] args) {
Computer c = new Computer();
MpThree m = new MpThree();
c.setConnectToUsb(m);
c.connect();
}
}