public
interface
IBuilder
{
string
RunBulderTask1();
RunBuilderTask2();
}
class
Builder1 : IBuilder
#region IBuilder Members
RunBulderTask1()
throw
new
ApplicationException(
"Task1"
);
RunBuilderTask2()
"Task2"
#endregion
Builder2 : IBuilder
return
"Task3"
;
"Task4"
Director
IBuilder CreateBuilder(
int
type)
IBuilder builder =
null
if
(type == 1)
builder =
Builder1();
else
Builder2();
builder.RunBulderTask1();
builder.RunBuilderTask2();
builder;