面向对象编程和面向接口编程

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.如果你已经买了单个接口的显示器,......额,貌似现在不会找到单接口的显示器。

  
 

原文地址:https://www.cnblogs.com/maomiyouai/p/3023494.html