面向对象编程和面向接口编程
1.定义:
类(class),是一种面向对象计算机编程语言的构造,是创建对象的蓝图,描述了所创建的对象共同的属性和方法。(来源Wiki)
接口包含 类 或 结构 可以实现相关一组功能的定义。接口可以包含方法、属性、事件、索引器,或者这四个成员类型的任意组合。(来源MSDN)
2.类与接口比较:(不考虑抽象类)
a.接口支持多重继承、而类只能有一个基类。
b.接口成员只有方法、属性、事件、索引器,而类却拥有更多成员,如字段、构造函数等。
c.接口中的成员仅有定义没有实现,而类中的成员包含实现。
d.接口中的成员都是可见,而类中成员可以对其他类隐藏。
e.接口只能定义实例成员, 不能定义静态成员,而类中可以含有这两种成员。
3.对两种编程思想的理解:
在一个系统中,考虑问题的东西不一样,一个是考虑遵循接口规则的对象,一个是考虑具体类的实例。
接口较为灵活,实现功能也较为单一,而具体类能实现功能,也可以提供一些额外的信息。
举个例子:PC输出信号模式有三种:VGA、DVI、HDMI(还有很多模式)。公司有一PC和笔记本,PC配置的PHILIPS显示器支持VGA、DVI显示接口,笔记本支持DVI显示接口。为了提高工作效率,将PC显示输出用VGA线接到PHILIPS显示器,笔记本输出DVI也接到PHILIPS显示器,然后打开PC和笔记本,将显示器设置为笔记本的扩展桌面。这下舒服了,使用笔记本时,可以利用PC的显示器(切换显示器信号为DVI);如果想用PC,直接切换显示器的信号接口到VGA。
现在,你有一笔记本和PC主机,买哪种显示器好呢。
a.如果是上面说的这种型号的PHILIPS显示器,那么你就会很Happy,这是考虑具体类的实例。
b.如果是同样拥有VGA和DVI两种接口的显示器,不管是什么牌子、型号等其他信息(这是具体类比接口提供更多的信息),你也会很Happy,这是考虑遵循接口规则的对象。
c.如果你已经买了单个接口的显示器,......额,貌似现在不会找到单接口的显示器。