您的位置:首页 > 其它

Dot Net设计模式—桥接模式

2005-08-17 09:02 447 查看
1.概述
1.1意图
“将抽象部分与它的实现部分分离,使它们都可以独立地变化”,这是GOF在《设计模式》一书中的解释。这里的抽象和实现并不一定是同一层次的概念,例如数据库操作可以归结为“增加、删除和修改”。很多业务过程都是通过对数据库的操作实现的,例如“库存管理”中的“入库”,这个业务动作的软件实现可以描述为“在库存表中增加一条记录”,而“入库”和“插入记录”处于不同的业务层次。

1.2使用场合
在如下情况下可以使用桥接模式。
(1)不希望在业务和业务的软件实现之间存在因定的绑定关系。例如,不希望“入库”业务过程和具体的数据库访问技术或数据库管理系统有过于密切的关系。最好是数据库访问技术的升级,或数据库管理系统的改变对业务模块没有影响,甚至在运行期间可以通过动态绑定来选择不同数据库技术或数据库管理系统。
(2)希望类的抽象和实现部分可以扩充,进而实现不同的抽象接口和实现部分的组合。
(3)修改实现部分对用户不产生影响,即代码无须重新编译。
(4)复用实现部分。由于实现部分所处的层次较低,因此可以被多种业务模块复用。例如,数据库访问模块可以用在多种业务单元中。

1.3结构
桥接模式的结构如图所示。
Imports System.IO
2Imports System.Net
3 Imports System.Text
4
具体的读取类实现ReadData方法。下面是从文本文件中读取数据,其中给出了读取用逗号分隔数据的方法:

1
下面是产生读取对象的简单工厂:

1Public Class clsReaDataFactoryClass clsReaDataFactory
2 Pbulic Shared Function getDataReader()Function getDataReader ( ) As clsAbstractReadData
3 Dim datafilepath As String =
4ConfigurationSettings.AppSettings (“DataFilePath”)
5 Dim strDataType As String = ConfigurationSettings.AppSettings (“DataType”)
6Dim strHttp As String = ConfigurationSettings.AppSettings (“DataURL”)
7Select Case strDataType
8 Case “http”
9 Dim mrd As clsReadDataFromRemoteFile
10 Mrd = New clsReadDataFromRemoteFile (strHttp)
11 Return mrd
12 Case Else
13 Dim mrd As clsReadDataFromFile
14 Mrd = New clsReadDataFromFile(datafilepath)
15 Return mrd
16 End Select
17 End Function
18end class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: