八月五號,星期二,天氣晴,心情複雜
這一天,是我寫下機的第二天了,感覺寫了很長時間也不知道自己再寫個什麼東西,思路很亂,想實現這個功能,又想實現那個功能,但是一想到代碼,就感覺好混亂呀!我的U層呀,這要是把這功能寫完了,那的藥多少的代碼量,天啊!我自己都不敢想象!於是乎,先嚐試自己把代碼實現了吧,再看看這個功能自己看着哪裏不順眼,再改。
就這樣子,我就把這個計算的業務邏輯代碼寫在了B層
<span style="font-size:18px;"> </span><span style="font-size:14px;">'計算消費的時間,消費的金額 同時更新到數據庫中</span>
Public Overrides Function coutMoney(ByVal cardcon As CardConsume, ByVal type As String) As Double
'首先是先定義一些變量:下機時間,減去上機時間(消費的時間)!
'基本數據設定中德:每小時的錢,遞增的時間,最少上機時間,最少的消費金額,準備時間
'首先查找出上機時間,下機時間 查詢的條件:卡號+最大的下機時間 將這條記錄時間查找出來
'時間查找出來之後就要計算消費時間
'查找DataBasic中德數據,數據進行計算消費的金額
'時間和金額算出來之後 更新 上機記錄表
Dim FixedperMoney As Double
Dim increasingTime As Double
Dim minTime As Double
Dim preTime As Double
Dim minMoney As Double
Dim cash As Double
Dim spentTime As Double
Dim basicdata As New BasicDataEntity
Dim Rbasicdata As New BasicDataEntity
Dim bll As New CardBLL
'給變量賦值
Rbasicdata = bll.GetBasicData(basicdata)
FixedperMoney = Rbasicdata.FixedperMoney
increasingTime = Rbasicdata.increasingTime
minTime = Rbasicdata.minTime
preTime = Rbasicdata.perTime
minMoney = Rbasicdata.minMoney
spentTime = bll.InOnlineStime(cardcon).spentTime
'計算結果
If spentTime < preTime Then
cash = 0
Else
If spentTime < minTime Then
cash = minMoney
Else
cash = (spentTime - preTime) / increasingTime * (FixedperMoney / 60 * increasingTime)
End If
End If
Return cash
End Function
按照這樣的構想,如果我有個超級用戶,第一我要在B層中加一個類,關於超級用戶的,第二呢我還要修改U層中的代碼。這樣就違背了面向對象的開閉原則。同時這樣系統的靈活性很差。這麼做其實還是面向過程,爲了實現功能而去編程。這個該怎麼辦呢??我的這個小心情呀,即高興(實現了一個功能), 又糾結(想辦法推翻這幾的這種面向過程的做法)。
我該怎麼辦。。。。期待後續。。。