总结面向接口编程

此处的"接口"与程序设计语言中的"interface"定义稍有不同,“面向接口编程”中的接口是一种思想层面的用于实现多态性、提高软件灵活性和可维护性的架构部件,而具体语言中的“接口”是将这种思想中的部件具体实施到代码里的手段。

优点:

1.可扩展性良好.例子:

public interface HardWare {

void useIt();

}



public class VideoCard implements HardWare {

void useIt() { Somtthing about VideoCard here ...}

}



public class AudioCard implements HardWare {

void useIt() { Something about AudioCard here ...}

}



public static startHardWare(HardWare hardWare) {

hardWare.useIt();

}



public void main(String[] args) {

//startHardWare(new AudioCard());

startHardWare(new VedioCard());

}



解析:startHardWare()方法中的参数类型是HardWare,这样如果要对其他HardWare调用startHardWare(),就无需对main()方法和startHardWare()做任何修改,只需要修改参数,这就是良好的可扩展性,也符合开闭原则.

例如.新添加一个硬件

public class networkCard implements HardWare {

void useIt() { Something about networkCard here ...}

}



在main()中只需修改参数 startHardWare(new networkCard()) 即可



2.支持多继承.

假如有两个特性

public interface Fly { ... }

public interface Run { ... }

有一个类

public Monster implements Fly, Run { ... }

这样他就同时拥有了Fly和Run,而用抽象类则无法做到,因为抽象类只支持单继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值