この投稿の回答者のアドバイスに従おうとしています: DataAccess プロジェクトのクラスの命名規則は何ですか? (jdk)。
以下のコードを見てください。
'Form1.vb
Imports WindowsApplication1.BusinessLogicLayerShared
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim IPerson As IPerson
IPerson = New BusinessLogicLayer.Person()
Dim name As String = IPerson.getName()
End Sub
End Class
'Person.vb
Imports WindowsApplication1.BusinessLogicLayerShared
Namespace BusinessLogicLayer
Public Class Person
Implements IPerson
Private IPerson As DataLogicLayerShared.IPerson
Public Function getName() As String Implements IPerson.getName
IPerson = New DataLogicLayer.Person
getName = IPerson.getName
End Function
End Class
End Namespace
Namespace BusinessLogicLayerShared
Public Interface IPerson
Function getName() As String
End Interface
End Namespace
'Person.vb
Imports WindowsApplication1.DataLogicLayerShared
Namespace DataLogicLayer
Public Class Person
Implements IPerson
Public Function getName() As String Implements IPerson.getName
'Connect to database and get name
Return "Ian"
End Function
Public Function getAge() Implements IPerson.getAge
End Function
End Class
End Namespace
Namespace DataLogicLayerShared
Public Interface IPerson
Function getName() As String
Function getAge()
End Interface
End Namespace
クライアント (フォーム) はビジネス ロジック層を呼び出し、ビジネス ロジック層はデータ ロジック層を呼び出します。名前 (文字列) は、データ ロジック層からビジネス ロジック層に渡され、クライアントに戻されます。
インターフェイスを参照するときに、名前空間を指定する必要があるという事実が気に入りません。たとえば、Private IPerson As DataLogicLayerShared.IPerson です。参照で名前空間を指定する必要がありますか、それとも採用したパターンを修正してこれを回避できますか?