私はデータ アクセス レイヤー (DAL) を実装しています。これは基本的に、データベース (CRUD) 呼び出しを実際に実行するための (VB.NET) 共有関数を持つ一連のクラスです。クラス階層内で DAL への呼び出しを配置するのに最適な場所を見つけようとしています。例を挙げましょう。
標準の ID、Name、Address1 などのプロパティと、オーバーライドされた ToString 関数などを持つクラス Customer があるとします。次のような Shared メソッドを持つ DAL クラスもあります。
(pseudocode)
Namespace Dal
Public Class Customer
Public Shared Function Read(id As Integer) As Customer
Public Shared Function ReadList() As List(Of Customer)
Public Shared Sub Create(c As Customer)
'etc.
これで、次のようにプレゼンテーション レイヤーから Dal を呼び出すことができます。
Me.DataGridView1.Datasource = Dal.Customer.ReadList
ただし、プレゼンテーション層に Dal をまったく認識させるのは良い習慣ではないでしょうか? 代わりに、Customer オブジェクトにメソッドを配置して、このように Dal を呼び出す必要がありますか?
Public Function ReadList() As List(Of Customer)
Return Dal.Customer.ReadList()
End Sub
Public Sub Create()
Dal.Customer.Create(Me)
End Sub
これは「よりクリーンな」OOPでしょうか?または、前の例のようにビジネス オブジェクトを渡して、プレゼンテーションに Dal を呼び出させることは許容される方法ですか。
Me.DataGridView1.Datasource = Dal.Customer.ReadList
Dim c As New Customer
c.Name = "Alpha Corporation"
c.Address1 = "123 Main Street"
Dal.Customer.Create(c)
ご意見をいただきありがとうございます。