Java中的接口有什么作用?
接口是一种抽象的方法
比如你买了一台电脑,你拿它来上网,相当于这台电脑实现了“能上网”的接口。
然后这台电脑忽然坏了,你换了一台ipad的,仍然可以拿来上网。
对于你来说,它是否是电脑并不重要,重要的是它是否“能上网”。
放进程序里,假设你有一个类叫“网民“,它只干一件事,那就是上网:
class 网民 {
public void 上网 (能上网的 东西) { 东西.上网(); }
}
那么当你使用这个类的时候,你可以给它一部电脑,也可以给一台ipad。如果你把”能上网“这个接口变成某一个类的方法,那网民类就要改写:
class 网民 {
public void 用电脑上网 (电脑) { 电脑.上网(); }
public void 用iPad上网 (iPad) { iPad.上网(); }
}
忽然有一天,智能家居出现了,你发现家里的电视也能上网了,你就不得不更改”网民“类,加入另一个方法好让它能使用电视上网。
你能问出这个问题是因为你没有设计API的经验,如果”网民“类是在一个API中,你就不能随意更改了,于是导致了即便出现了能上网的电视,网民还是无法使用的情况。
另外再补充一点!!!
接口在开发过程中可以快速分离工作内容。
比如调用者在写业务逻辑的时候需要一个功能,可能是数据库访问,或者复杂计算,但是他的工作专注于实现业务逻辑,不想分开精力去做底层实现,那么他只需要先实现一个接口,定义了规范,然后就可以继续他的业务逻辑代码了。
而实现者可以根据这个接口规范,做具体的实现。
这样通过使用接口就可以快速的分离工作内容,达到团队并行工作的目的。
此外,如果规范是通过接口定义的,那么当你这个功能有多个实现时,你只要实现了这个接口,那么可以快速的替换具体实现,做到代码层面的完全可以分离。
总结起来就一句话:接口或者规范可以在开发过程中做到分离。
|
|