我是一位使用DAO的自學vb6程序員。下面是一個代碼典型件,我可以生產出的示例:重構爲n層
Sub cmdMultiplier_Click() 'Button on form, user interface '
dim Rec1 as recordset
dim strSQL as string
strSQL = "select * from tblCustomers where ID = " & CurrentCustomerID 'inline SQL '
set rec1 = GlobalDataBase.openrecordset(strSQL) ' Data access '
if rec1.bof <> true or rec1.eof <> true then
if rec1.fields("Category").value = 1 then
PriceMultiplier = 0.9 ' Business Logic '
else
priceMultiplier = 1
end if
end if
End Sub
請假裝上面是CRUD應用程序的整個源代碼。 我知道這個設計很糟糕,一切都混在一起。理想情況下,它應該有三個不同的層次,用戶界面,業務邏輯 和數據訪問。我想 - 爲什麼這是可取的,但我不知道它是如何做的,我懷疑 這就是爲什麼我不完全明白爲什麼這樣的分離是好的。 我認爲如果有人能夠將上面可笑的 重新構造成3層,我會更進一步。
這很難重構這個,因爲它很荒謬。有一個3層應用程序會給這樣一個簡單的例子帶來很多複雜性,因爲它不能正確說明3層架構比一般的混雜代碼更簡單。 – workmad3 2008-10-22 22:30:22
我知道你的意思,但我想看看它是如何完成的。考慮到這一點,我認爲分層可能會使數據庫規範化。在表面層面上,它似乎會增加複雜性而沒有任何獎勵 – kjack 2008-10-23 09:52:08
是的,正常化數據庫是不合理的。喬治我認爲他有它(tm)! – 2008-10-23 15:56:48