接口一直是我一知半解的编程概念. 学习接口之前,有这么几个问题需要被提出来: 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 如果不使用接口,能否实现同样的设计,如果可以两个方案的区别又在什么地方 
|