Java抽象工厂模式 抽象工厂模式( 四 )


Dim dtUser As DataSet
'执行不带参数的查询过程
'dtUser = sqlHelper.Query(queryString)
dtUser = sqlHelper.ExecuteQuery(queryString, CommandType.Text)
Return dtUser
End Function
''' summary
''' 修改密码
''' /summary
''' param name="userInfo"实体类/param
''' returns返回是否修改成功/returns
''' remarks/remarks
Public Function ModifyPwd(ByVal userInfo As Entity.UserInfo) As Boolean Implements IDAL.IUser.ModifyPwd
Dim btn As Boolean = False'是否修改成功判断
Dim sqlHelper As New SQLHelper()
Dim strSQL As String'SQL语句
Dim i As Integer'受影响的行数
'参数集合
Dim paras As SqlParameter()
paras = New SqlParameter() {New SqlParameter("@userID", userInfo.userID),
New SqlParameter("@u_password", userInfo.u_password)
}
'SQL查询语句
strSQL = "update D_sqlUser set u_password=@u_password where userid=@userID"
i = sqlHelper.ExecuteNonQuery(strSQL, paras, CommandType.Text)'执行带参数的查询过程
If i0 Then
btn = True'修改成功
End If
Return btn
End Function
''' summary
''' 根据用户等级查询信息
''' /summary
''' param name="userInfo"实体类/param
''' returns返回记录集/returns
''' remarks/remarks
Public Function SelectLevel(ByVal userInfo As Entity.UserInfo) As System.Data.DataSet Implements IDAL.IUser.SelectLevel
Dim strLevel As String'获取用户等级
Dim sqlHelper As New SQLHelper
Dim queryString As String'SQL语句
Dim dsUser As New DataSet'定义记录集
'从实体类获得等级
strLevel = Trim(userInfo.u_level)
'查询SQL语句
queryString = "SELECT * FROM D_sqlUser WHERE u_level ='"Trim(strLevel)"'"
''执行不带参数的查询过程
dsUser = sqlHelper.ExecuteQuery(queryString, CommandType.Text)
Return dsUser
End Function
''' summary
''' DAL 查询用户只是根据用户名查询
''' /summary
''' param name="userInfo"实体类/param
''' returns返回记录集/returns
''' remarks/remarks
Public Function QueryUser(ByVal userInfo As Entity.UserInfo) As System.Data.DataSet Implements IDAL.IUser.QueryUser
Dim strUserID As String'用户名
Dim strPWD As String'密码
Dim sqlHelper As New SQLHelper'助手类
Dim queryString As String'SQL查询语句
'从实体类获取数据
strUserID = userInfo.userID
strPWD = userInfo.u_password
'SQL查询语句
queryString = "SELECT * FROM D_sqlUser WHERE userID ='"Trim(strUserID)"'"
'执行不带参数的查询过程
Dim dsUser As DataSet
dsUser = sqlHelper.ExecuteQuery(queryString, CommandType.Text)
Return dsUser
End Function
End Class
总结:BLL层无需知道DAL层 , IDAL接口层实现了数据层和逻辑层的分离 , 用反射更是减少了分支判断带来的耦合 。
工厂方法模式引入抽象产品和抽象工厂的区别?工厂方法模式引入了抽象产品和具体产品的概念 , 每个具体工厂都可以生产一种或多种具体产品 , 并且客户端可以通过工厂方法来获取所需的产品 。抽象工厂模式引入了抽象工厂和具体工厂的概念 , 每个抽象工厂都可以生产一类或多类产品 , 并且客户端可以通过抽象工厂来获取所需的产品 。
两种模式都可以用于解决对象创建问题 , 但是它们在使用上有一些不同 。工厂方法模式适用于生产单一产品的情况 , 而抽象工厂模式适用于生产多种产品的情况 。工厂方法模式更加灵活 , 可以根据实际需要来添加新的产品和工厂 , 而抽象工厂模式更加稳定 , 可以提供高度封装的产品组 。
总的来说 , 两种模式都是用于解决对象创建问题的 , 在实际应用中 , 可以根据具体情况来选择合适的模式 。
抽象工厂1、是指位于不同产品等级结构中 , 功能相关联的产品组成的家族 。一般是位于不同的等级结构中的相同位置上 。显然 , 每一个产品族中含有产品的数目 , 与产品等级结构的数目是相等的 , 形成一个二维的坐标系 , 水平坐标是产品等级结构 , 纵坐标是产品族 。叫做相图 。
1、例:在现实生活中的汽车牌照没有咱们例子中那么简单 。除了国家规定不同类型的车辆所上的牌照不同意外 , 不同省份的牌照生成规则也不一样 , 最明显的就是牌照号中那唯一的汉字 , 比如北京市的牌照就是“京X·XXXXX” , 而河北省的牌照就是“冀X·XXXXX” , 当然同一省份不同地区的牌照在汉字后面的那个字母也不一样 。

秒懂生活扩展阅读