BLL层:方法单一VS单一方法

本文对比了业务逻辑层(BLL)采用‘方法单一’与‘单一方法’两种设计方式的优劣,通过添加用户功能的具体代码示例,阐述了‘方法单一’在遵循开放封闭原则与单一职责原则方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BLL层即业务逻辑层,是处理业务逻辑判断的,可是这个判断是放到一个方法里还是分成多个方法呢?

题目说的“方法单一”即在BLL层里存放多个方法(有主方法和辅助方法,主方法调用辅助方法),是每个方法都有单一的功能;而“单一方法”即在BLL层中只存在一个主方法。

注:“主方法”:窗体需要调用BLL层的方法;“辅助方法”:例如一些判断,需要被主方法调用。

有些人可能会认为业务逻辑层不就是处理那些复杂的判断吗?那我写的越复杂岂不是越好?

下面我们就以充值卡为例,通过代码来看看到底哪个好?(窗体需要调用的是AddUser方法)

一、“方法单一”实现

''' <summary> ''' 添加用户 ''' </summary> ''' <param name="entityUser">用户信息</param> ''' <returns>添加是否成功</returns> ''' <remarks>2011-4-11 19:41 by dan</remarks> Public Function AddUser(ByVal entityUser As userInfo) As Boolean Dim iuser As Iuser Dim result As Boolean iuser = DataAccess.CreateUser() If Not (IsExist(entityUser)) Then '插入用户信息 If iuser.Insert(entityUser) Then result = True Else result = False End If Else result = False End If Return result End Function ''' <summary> ''' 判断用户是否已存在 ''' </summary> ''' <param name="entityUser">用户信息</param> ''' <returns>返回“True”则已存在,“False”为不存在</returns> ''' <remarks>2011-4-11 19:41 by dan</remarks> Public Function IsExist(ByVal entityUser As userInfo) As Boolean Dim iuser As Iuser Dim result As Boolean iuser = DataAccess.CreateUser() '判断该用户是否已注册 If Not IsNothing(iuser.Check(entityUser)) Then result = True MsgBox("该用户已存在!", vbOKOnly + vbInformation, "提示") Else result = False End If Return result End Function

二、“单一方法”实现:

''' <summary> ''' 添加用户 ''' </summary> ''' <param name="entityUser">用户信息</param> ''' <returns>添加是否成功</returns> ''' <remarks>2011-4-11 19:41 by dan</remarks> Public Function AddUser(ByVal entityUser As userInfo) As Boolean Dim iuser As Iuser Dim result As Boolean iuser = DataAccess.CreateUser() If Not IsNothing(iuser.Check(entityUser)) Then '插入用户信息 If iuser.Insert(entityUser) Then result = True Else result = False End If End If Return result End Function

“方法单一”的好处:

1、符合“开放——封闭”原则

也许这只需一个判断还不是很明显,试想如果有三四个或者更多的时候,使用“单一方法”是不是就太复杂了,所有的判断都要写到一个方法里,修改起来非常困难;而使用”方法单一”则容易很多。

3、功能单一,符合“单一职责”原则:

每个方法只实现一种功能,完全符合“单一职责”原则。

2、可隐藏不必要的方法:

如果大家不想让窗体层看到它不需要调用的方法,我们只需将它们定义成private即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值