Visual Basic OOP Part 2 -- 繼承與介面之靈光一閃

之前之Allen大大聊天時,有討論到「繼承與介面」一些內容,雖然我之前有寫過「繼承Inherit、介面Interface的使用時機及建議」一文,但昨晚在帶著大小寶貝散步時,突然靈光一閃,又有新的認知。

首先,我們要了解在 .NET Framework只能單一繼承,也就是每一個類別(Class)只能繼承一個基礎類別(BaseClass),但深度沒有限制。

A Class --> B Class --> C Class --> D Class
             --> E Class --> F Class
                                --> G Class

但介面可以有多重繼承,也就一個類別可同時繼承多個介面,以 List類別為例,

Public Class List(Of T) _
 Implements IList(Of T), ICollection(Of T),  _
 IEnumerable(Of T), IList, ICollection, IEnumerable

它同時實作了六個介面,

  1. IList(Of T)
  2. ICollection(Of T)
  3. IEnumerable(Of T)
  4. IList
  5. ICollection
  6. IEnumerable

那我靈光一閃什麼呢?

我們需要的組織或架構是「樹狀, Tree」,那就可以規劃使用繼承。繼承的方向單純,走的是「Top-Down」。例如,我們看一下「人的科學分類」,這就很合適使用繼承。

我們需要的織組或架構是「網狀, Net」,那就可以規劃使用介面。介面是多方向,走的是「Matrix,矩陣」、「放射狀」。



以上就是我小小一閃的心得。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。