gpt4 book ai didi

.net - .NET BCL 中是否有生成器模式的示例?

转载 作者:行者123 更新时间:2023-12-04 22:26:15 25 4
gpt4 key购买 nike

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

最佳答案

我远非这方面的专家,但我认为 DbCommandBuilder及其继承类( OdbcCommandBuilderOleDbCommandBuilderSqlCommandBuilder )可能是一个例子......如果抽象构建器基类也可以作为主管。各种具体类委托(delegate)给它们的基类,然后基类调用如下方法(每个反射器):

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;
}

这满足了成为 build 者的一些要求:
  • 抽象构建器类
  • 混凝土 build 师类(class)
  • 在各种 DbCommandBuilder 方法(BuildDeleteCommandBuildInsertCommandBuildUpdateCommand)中进行复杂的多步骤构建
  • 产品( DbCommand ,由具体类转换为特定的命令类型),它比 SQL 字符串更复杂,因为它具有超时、命令类型、可能是事务等。

  • 但是没有单独的类(class)担任导演;实际上, DbCommandBuilder基类是导演。

    关于.net - .NET BCL 中是否有生成器模式的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/925176/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com