2

インターフェイスの概念は理解していますが、実際の使用例を見つけるのが難しいことがよくあります。次のコードを作成しました。

Public MustInherit Class Deletion2
    Implements DeletionInterface2

    Public MustOverride Function Delete() As String Implements DeletionInterface2.Delete
    Public Function CheckDate() As Boolean Implements DeletionInterface2.CheckDate
        Return True
    End Function
End Class

Public Class System1Delete
    Inherits Deletion2
    Implements DeletionInterface2
    Overrides Function Delete() As String
        Return "System 1 Deleted"
    End Function

End Class

Public Class System2Delete
    Inherits Deletion2
    Implements DeletionInterface2
    Overrides Function Delete() As String
        Return "System 2 Deleted"
    End Function

End Class

Public Interface DeletionInterface2
    Function CheckDate() As Boolean
    Function Delete() As String
End Interface

Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim IDeletion As DeletionInterface2
        IDeletion = New System1Delete
        IDeletion.CheckDate()
        IDeletion.Delete()
        IDeletion = Nothing

        IDeletion = New System2Delete
        IDeletion.CheckDate()
        IDeletion.Delete()
        IDeletion = Nothing
End Sub

上記の例 (ページの読み込み) では、インターフェイスへの参照を使用してオブジェクトのインスタンスを作成しましたが、これの真の利点がわかりません。

4

1 に答える 1

3

MustInheritインターフェイス (またはクラス)のような抽象化を使用する利点は、インターフェイスを実装する任意のオブジェクトをまったく同じ方法で処理できることです。

たとえば、System.Data名前空間はそのような多くの抽象化を使用します。つまり、さまざまなデータ プロバイダーの実装がより簡単になり、コアがこれらの抽象化を使用しているため、新しい実装が追加されても変更する必要はありません (組み込みのさまざまなプロバイダーすべてに関すること)。およびサードパーティ - SQL Server、Oracle、PostGresSQL、MySQL など...)。

于 2012-07-07T20:57:28.763 に答える