首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

接口为何能够解耦

2011-12-24 
接口为什么能够解耦接口为什么能够解耦[解决办法]因为方法的多态,所以接口的调用者只需要调用接口,具体的

接口为什么能够解耦
接口为什么能够解耦

[解决办法]
因为方法的多态,所以接口的调用者只需要调用接口,具体的业务交给接口的实现者去实现
即使用接口,可以避免接口调用方直接参与业务逻辑实现,所以能避免接口调用与业务逻辑实现紧密关联,即解耦
[解决办法]
给你一个例子,希望对你有帮助
定义一个接口 磁盘
interface Disk(){
void save(File file);
}
U盘和硬盘都是磁盘,都实现这个接口
class UDisk implement Disk{
 void save(File file);
}


class HardDisk implement Disk{
 void save(File file);
}

一个需要用磁盘来存储的下载工具
class Download{
Disk disk;//用接口声明,我们不知道,也不用知道,我们未来会存到什么样的磁盘,我们不依赖于任何类型的磁盘,我们只依赖于这个接口


void download(File file){
disk.save(file);
}

void setDisk(Disk disk){
this.disk=disk;
}

public static void main(String[] args){
Download download = new Download();
设置存储目标为U盘
download.setDisk(new UDisk());
文件被存到了U盘
download.download(file);

设置存储目标为硬盘
download.setDisk(new HardDisk());
文件被存到了硬盘
download.download(file);

某天我们想把下载的文件保存到CD里边,我们只需要定义CDDisk类,实现Disk接口就可以不对download本身做任何修改,就可以方便的将文件下载到CD或其他介质里。我们的Download类不依赖于任何具体的类,这样就接触了与任何具体存储设备的耦合!
}

}

热点排行