接口学习

来源:互联网 发布:手机淘宝受骗怎么投诉 编辑:程序博客网 时间:2024/06/13 21:49

接口一直是我一知半解的编程概念.
学习接口之前,有这么几个问题需要被提出来:
WHAT 什么是接口?
WHY 为什么要用接口?(接口有什么用?接口有什么优点?)
HOW 怎么使用接口?
WHEN,WHERE  什么时候,什么地方使用接口?
IF NOT 如果不使用接口,能否实现同样的设计,如果可以两个方案的区别又在什么地方

通过学习我了解到:
WHAT 什么是接口:
接口是一种只有声明没有实现的特殊类
接口是一种约定,实现接口的类性格严格按照期定义来实现接口的每个方面.
如果假设接口是一个定义好的钥匙孔,面实现这个接口的多个类假设是门锁,那么在执行就可以忽略我面对的是哪个锁,我只需要用同一把钥匙就可以开这一类的锁了.

接口是一个对象在对其它的对象进行调用时所知道的方法集合。
 一个对象可以有多个接口(实际上,接口是对象所有方法的一个子集)
 类型是对象的一个特定的接口。
 不同的对象可以具有相同的类型,而且一个对象可以具有多个不同的类型。
 一个对象仅能通过其接口才会被其它对象所了解。
 某种意义上,接口是以一种非常局限的方式,将“是一种…”表达为“一种支持该接口的…”。
 接口是实现插件化(pluggability)的关键


WHY 为什么要用接口?(接口有什么用?接口有什么优点?)
官方的说明是:
有了接口,可以将功能定义为一些紧密相关成员的小组,可以在不危害现有代码的情况下,开发接口的增强型实现,从而使兼容性总是最小化,也可以在任何时候开发附加接口和实现来添加新的功能.

 Client不必知道其使用对象的具体所属类。
 一个对象可以很容易地被(实现了相同接口的)的另一个对象所替换。
 对象间的连接不必硬绑定(hardwire)到一个具体类的对象上,因此增加了灵活性。
 松散藕合(loosens coupling)。
 增加了重用的可能性。
 提高了(对象)组合的机率,因为被包含对象可以是任何实现了一个指定接口的类。
 缺点:
 设计的复杂性略有增加
(译者注:接口表示“…像…”(LikeA)的关系,继承表示“…是…”(IsA)的关系,组合表示“…有…”(HasA)的关系。)

HOW 怎么使用接口?
1  :通过在模块文件中定义interface
interface interface1
    sub sub1(x as integer)
    end sub
    
    function function1(x as integer) as integer
    end function
end interface

2  :在需要实现该接口的类中使用implements引用该接口
     public class myclass1
         implements   interface1
         ....
     end class

WHEN,WHERE  什么时候,什么地方使用接口?


IF NOT 如果不使用接口,能否实现同样的设计,如果可以两个方案的区别又在什么地方

原创粉丝点击