我是一位使用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