是否有.NET基类库中完整构建器模式的示例?我正在寻找具有实际导演和多个混凝土建造者的东西.
我根本不是在这一领域的专家,但我认为这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
基类是导演.