当前位置:  开发笔记 > 数据库 > 正文

.NET BCL中是否有Builder模式的示例?

如何解决《.NETBCL中是否有Builder模式的示例?》经验,为你挑选了1个好方法。

是否有.NET基类库中完整构建器模式的示例?我正在寻找具有实际导演和多个混凝土建造者的东西.



1> Ryan Lundy..:

我根本不是在这一领域的专家,但我认为这DbCommandBuilder将和它的继承类(OdbcCommandBuilder,OleDbCommandBuilder,SqlCommandBuilder是否确定了抽象建设者基类也作为导演)可能是一个例子....各种具体类委托给它们的基类,然后调用这些方法(每个Reflector):

private DbCommand BuildDeleteCommand(DataTableMapping mappings, DataRow dataRow)
{
    DbCommand command = this.InitializeCommand(this.DeleteCommand);
    StringBuilder builder = new StringBuilder();
    int parameterCount = 0;
    builder.Append("DELETE FROM ");
    builder.Append(this.QuotedBaseTableName);
    parameterCount = this.BuildWhereClause(
        mappings, dataRow, builder, command, parameterCount, false);
    command.CommandText = builder.ToString();
    RemoveExtraParameters(command, parameterCount);
    this.DeleteCommand = command;
    return command;
}

这满足了构建者的一些要求:

抽象的建设者类

混凝土建造者班

复杂的多步骤的建筑内的各种方法DbCommandBuilder将(BuildDeleteCommand,BuildInsertCommand,BuildUpdateCommand)

product(DbCommand由具体类强制转换为特定的命令类型),它比SQL字符串更复杂,因为它具有超时,命令类型,可能是事务等.

但是没有一个单独的班级担任导演; 实际上,DbCommandBuilder基类是导演.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有