java0010——面向介面的程式設計
阿新 • • 發佈:2018-12-11
例題 計算機連線各種外設,每個外設都有各自的讀寫方法 目的實現程式碼依賴介面,而不是依賴具體的類,方便程式的擴充套件
package Computer;
public interface IMobleDevice{
public void write();
public void read();
}
=====================================================
package Computer;
public class Computer {
IMobleDevice device;
public Computer() {
super ();
}
public Computer(IMobleDevice device) {
super();
this.device = device;
}
public IMobleDevice getDevice() {
return device;
}
public void writeData() {
device.write();
}
public void readDate() {
device.read();
}
public void setDevice(IMobleDevice device) {
this.device = device;
}
}
=====================================================
package Computer;
public class Phone implements IMobleDevice {
public void write() {
System.out.println("把筆記本資料寫入手機");
}
public void read() {
System.out.println("從手機讀取資料到筆記本");
}
}
======================================== =============
package Computer;
public class UDisk implements IMobleDevice {
public void write() {
System.out.println("寫入U盤");
}
public void read() {
System.out.println("讀取U盤");
}
}
=====================================================
package Computer;
public class MobileHarddisk implements IMobleDevice {
public void write() {
System.out.println("把資料寫入行動硬碟");
}
public void read() {
System.out.println("從行動硬碟讀取資料");
}
}
=====================================================
package Computer;
public class RunningDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Computer computer =new Computer();
UDisk disk=new UDisk();
computer.setDevice(disk);//新增一個具體的多型介面
computer.readDate();
computer.writeData();
Phone phone=new Phone();
computer.setDevice(phone);//修改新增的資料
computer.readDate();
computer.writeData();
MobileHarddisk harddisk=new MobileHarddisk();
computer.setDevice(harddisk);
computer.readDate();
computer.writeData();
}
}