我正在尝试按照这篇文章的回答者的建议:What's the naming convention for classes in the DataAccess Project?(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
客户端(表单)调用业务逻辑层,业务逻辑层调用数据逻辑层。名称(String)从数据逻辑层传递到业务逻辑层并返回到客户端。
我不喜欢在引用接口时我必须指定命名空间的事实,例如Private IPerson As DataLogicLayerShared.IPerson。我应该在引用中指定命名空间还是可以修改我采用的模式以避免这种情况?
答案 0 :(得分:1)
您应该可以在源文件的顶部添加Imports DataLogicLayerShared
。这将使您不必使用命名空间完全限定每个类。
您可以了解有关VB .NET引用和命名空间here
的更多信息更新:如果您有多个具有相同名称的类或接口,则在不同的命名空间中,您必须通过在其之前添加命名空间来限定您正在使用的类,如上例所示。
在您的情况下,您可能不需要在同一源文件中包含业务层和数据层类。您的代码应该调用服务(业务逻辑)层,然后调用数据层。