毕业设计超市系统(五)业务逻辑处理
接着上面的说业务的处理
我感觉这里的业务逻辑设计的不好,还是跟这个系统的设计有关。我只想让不同的类实现自己的功能,这样又带来一些问题,一个类不能实现太多的接口这样类型就有了很多的功能。于是我给这些类定义了一个接口:
接口
''' <summary>
''' 业务逻辑要实现的接口
''' </summary>
''' <remarks></remarks>
Public Interface BsLogic
''' <summary>
''' 调用方法
''' </summary>
''' <remarks></remarks>
Sub Invoke()
End Interface
''' 业务逻辑要实现的接口
''' </summary>
''' <remarks></remarks>
Public Interface BsLogic
''' <summary>
''' 调用方法
''' </summary>
''' <remarks></remarks>
Sub Invoke()
End Interface
它只有一个Invoke()没有返回值也没有参数,所以这个方法更加的通用。所用到的数据都是在实现接口的类中设置的属性,返回值也是通过实现接口的类型中的属性值:
添加
Imports SiYaoMin.ProForLeave.MyLINQ
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 添加商品基本信息的类型
''' </summary>
''' <remarks></remarks>
Public Class AddGoodsDetail
Implements BsLogic
'对数据处理层类型的引用
Dim addgoods As New AddGoodsData
''' <summary>
''' 调用前确保已经配置了商品基本信息
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
addgoods.Goods = _goods
'判断操作是否成功,
'因为在存储过程里用Return @@error所以返回0表示没有错误出现
If addgoods.Add() = 0 Then
_complete = True
Else
_complete = False
End If
End Sub
Private _goods As GoodsDetail
''' <summary>
''' 调用Invoke之前设置置要添加的商品基本信息
''' </summary>
''' <value>商品基本信息:GoodsDetail</value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
Private _complete As Boolean
''' <summary>
''' 调用Invoke后再检查这个属性才有意义,表示是否已经完成
''' </summary>
''' <value></value>
''' <returns>是否成功</returns>
''' <remarks></remarks>
Public ReadOnly Property Complete() As Boolean
Get
Return _complete
End Get
End Property
End Class
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 添加商品基本信息的类型
''' </summary>
''' <remarks></remarks>
Public Class AddGoodsDetail
Implements BsLogic
'对数据处理层类型的引用
Dim addgoods As New AddGoodsData
''' <summary>
''' 调用前确保已经配置了商品基本信息
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
addgoods.Goods = _goods
'判断操作是否成功,
'因为在存储过程里用Return @@error所以返回0表示没有错误出现
If addgoods.Add() = 0 Then
_complete = True
Else
_complete = False
End If
End Sub
Private _goods As GoodsDetail
''' <summary>
''' 调用Invoke之前设置置要添加的商品基本信息
''' </summary>
''' <value>商品基本信息:GoodsDetail</value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
Private _complete As Boolean
''' <summary>
''' 调用Invoke后再检查这个属性才有意义,表示是否已经完成
''' </summary>
''' <value></value>
''' <returns>是否成功</returns>
''' <remarks></remarks>
Public ReadOnly Property Complete() As Boolean
Get
Return _complete
End Get
End Property
End Class
删除
Imports SiYaoMin.ProForLeave.MyLINQ
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 删除商品基本信息的类型
''' </summary>
''' <remarks></remarks>
Public Class DeleteGoodsInGoodsId
Implements BsLogic
'对数据处理层类型的引用
Dim deletegoods As New DeleteGoodsInId
''' <summary>
''' 调用前确保已经配置了商品基本信息(商品编号)
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
deletegoods.Goods = _goods
'判断操作是否成功,
'因为在存储过程里用Return @@error所以返回0表示没有错误出现
If deletegoods.Delete() = 0 Then
_complete = True
Else
_complete = False
End If
End Sub
Private _goods As GoodsDetail
''' <summary>
''' 调用Invoke之前设置置要添加的商品基本信息:配置goodsid
''' </summary>
''' <value>商品基本信息:GoodsDetail(只配置goodsid)</value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
Private _complete As Boolean
''' <summary>
''' 调用Invoke后再检查这个属性才有意义,表示是否已经完成
''' </summary>
''' <returns>是否成功</returns>
''' <remarks></remarks>
Public ReadOnly Property Complete() As Boolean
Get
Return _complete
End Get
End Property
End Class
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 删除商品基本信息的类型
''' </summary>
''' <remarks></remarks>
Public Class DeleteGoodsInGoodsId
Implements BsLogic
'对数据处理层类型的引用
Dim deletegoods As New DeleteGoodsInId
''' <summary>
''' 调用前确保已经配置了商品基本信息(商品编号)
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
deletegoods.Goods = _goods
'判断操作是否成功,
'因为在存储过程里用Return @@error所以返回0表示没有错误出现
If deletegoods.Delete() = 0 Then
_complete = True
Else
_complete = False
End If
End Sub
Private _goods As GoodsDetail
''' <summary>
''' 调用Invoke之前设置置要添加的商品基本信息:配置goodsid
''' </summary>
''' <value>商品基本信息:GoodsDetail(只配置goodsid)</value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
Private _complete As Boolean
''' <summary>
''' 调用Invoke后再检查这个属性才有意义,表示是否已经完成
''' </summary>
''' <returns>是否成功</returns>
''' <remarks></remarks>
Public ReadOnly Property Complete() As Boolean
Get
Return _complete
End Get
End Property
End Class
更新
Imports SiYaoMin.ProForLeave.MyLINQ
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 更新商品基本信息
''' </summary>
''' <remarks></remarks>
Public Class UpdateGoodsDetail
Implements BsLogic
Dim upgoods As New UpdateGoodsData
''' <summary>
''' 执行更新操作
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
upgoods.Goods = _goods
If upgoods.Update() = 0 Then
_complete = True
Else
_complete = False
End If
End Sub
Private _goods As GoodsDetail
''' <summary>
''' 配置商品详细信息
''' </summary>
''' <value></value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
Private _complete As Boolean
''' <summary>
''' 只读属性,执行完后它才有意义
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public ReadOnly Property Complete() As Boolean
Get
Return _complete
End Get
End Property
End Class
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 更新商品基本信息
''' </summary>
''' <remarks></remarks>
Public Class UpdateGoodsDetail
Implements BsLogic
Dim upgoods As New UpdateGoodsData
''' <summary>
''' 执行更新操作
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
upgoods.Goods = _goods
If upgoods.Update() = 0 Then
_complete = True
Else
_complete = False
End If
End Sub
Private _goods As GoodsDetail
''' <summary>
''' 配置商品详细信息
''' </summary>
''' <value></value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
Private _complete As Boolean
''' <summary>
''' 只读属性,执行完后它才有意义
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public ReadOnly Property Complete() As Boolean
Get
Return _complete
End Get
End Property
End Class
查询
Imports SiYaoMin.ProForLeave.MyLINQ
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 按条件查找商品基本信息
''' </summary>
''' <remarks></remarks>
Public Class GetFilterGoods
Implements BsLogic
Dim getfilter As New GetGoodsInfo
''' <summary>
''' 执行查询操作,之前一定要先配置属性:GoodsDetail
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
getfilter.Goods = _goods
_ds = getfilter.GetFilterGoods()
End Sub
Private _ds As IList
''' <summary>
''' 查询到的结果集
''' </summary>
''' <returns>实现ilist的列表</returns>
''' <remarks></remarks>
Public ReadOnly Property ResultList() As IList
Get
Return _ds
End Get
End Property
Private _goods As GoodsDetail
''' <summary>
''' 配置商品基本信息:info,company,types
''' </summary>
''' <value>GoodsDetail:info,company,types</value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
End Class
Imports SiYaoMin.ProForLeave.DBLayer
''' <summary>
''' 按条件查找商品基本信息
''' </summary>
''' <remarks></remarks>
Public Class GetFilterGoods
Implements BsLogic
Dim getfilter As New GetGoodsInfo
''' <summary>
''' 执行查询操作,之前一定要先配置属性:GoodsDetail
''' </summary>
''' <remarks></remarks>
Public Sub Invoke() Implements BsLogic.Invoke
getfilter.Goods = _goods
_ds = getfilter.GetFilterGoods()
End Sub
Private _ds As IList
''' <summary>
''' 查询到的结果集
''' </summary>
''' <returns>实现ilist的列表</returns>
''' <remarks></remarks>
Public ReadOnly Property ResultList() As IList
Get
Return _ds
End Get
End Property
Private _goods As GoodsDetail
''' <summary>
''' 配置商品基本信息:info,company,types
''' </summary>
''' <value>GoodsDetail:info,company,types</value>
''' <remarks></remarks>
Public WriteOnly Property Goods() As GoodsDetail
Set(ByVal value As GoodsDetail)
_goods = value
End Set
End Property
End Class


浙公网安备 33010602011771号