在.NET基类库中有完整构建器模式的示例吗?我正在寻找的东西,有一个实际的导演和多个混凝土建造者。
发布于 2009-06-04 04:33:18
我不是这个领域的专家,但是我认为DbCommandBuilder和它的继承类(OdbcCommandBuilder,OleDbCommandBuilder,SqlCommandBuilder)可能是一个example...if。抽象构建器基类也可以作为导向器。不同的具体类委托给它们的基类,然后基类调用这样的方法(每个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;
}这满足了作为构建者的一些要求:
BuildDeleteCommand、BuildInsertCommand、BuildUpdateCommand)DbCommand,由具体类转换为特定命令类型)中的多步骤构建中,这比SQL字符串更复杂,因为它具有超时、命令类型、潜在的事务等。但是没有单独的类充当控制器;实际上,DbCommandBuilder基类就是控制器。
发布于 2009-05-29 09:41:38
多个混凝土建造商?据我所知没有,除非你把WebRequest.Create计算在内,它是一种非常琐碎的建筑。
尽管如此,ProcessStartInfo和StringBuilder作为简单的“一个构建器”示例都是合理的。
https://stackoverflow.com/questions/925176
复制相似问题