我想我已爱上你——下机之策略模式(一)

       八月五号,星期二,天气晴,心情复杂

       这一天,是我写下机的第二天了,感觉写了很长时间也不知道自己再写个什么东西,思路很乱,想实现这个功能,又想实现那个功能,但是一想到代码,就感觉好混乱呀!我的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层中去判断,临时用户用那些方法,固定用户用那些方法,如果我要有个超级用户怎么办??

      按照这样的构想,如果我有个超级用户,第一我要在B层中加一个类,关于超级用户的,第二呢我还要修改U层中的代码。这样就违背了面向对象的开闭原则。同时这样系统的灵活性很差。这么做其实还是面向过程,为了实现功能而去编程。这个该怎么办呢??我的这个小心情呀,即高兴(实现了一个功能), 又纠结(想办法推翻这几的这种面向过程的做法)。

        我该怎么办。。。。期待后续。。。

                                                                           

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值