
示例代码:
using System;
![]()
using System.Collections;
![]()
![]()
![]()
public class Director
![]()
{
![]()
public void Construct( Builder builder )
![]()
{
![]()
builder.BuildWall();
![]()
builder.BuildRoom();
![]()
builder.BuildDoor();
![]()
}
![]()
}
![]()
![]()
![]()
public abstract class Builder
![]()
{
![]()
public abstract void BuildWall();
![]()
public abstract void BuildRoom();
![]()
public abstract void BuildDoor();
![]()
public abstract GameScene GetResult();
![]()
}
![]()
![]()
![]()
public class GameBuilder : Builder
![]()
{
![]()
private GameScene g;
![]()
![]()
![]()
public override void BuildWall()
![]()
{
![]()
g = new GameScene();
![]()
g.Add( "Wall" );
![]()
}
![]()
public override void BuildRoom()
![]()
{
![]()
g.Add( "Room" );
![]()
}
![]()
public override void BuildDoor()
![]()
{
![]()
g.Add( "Door" );
![]()
}
![]()
public override GameScene GetResult()
![]()
{
![]()
return g;
![]()
}
![]()
}
![]()
![]()
![]()
public class GameScene
![]()
{
![]()
ArrayList parts = new ArrayList();
![]()
public void Add( string part )
![]()
{
![]()
parts.Add( part );
![]()
}
![]()
public void Display()
![]()
{
![]()
Console.WriteLine( " GameScene Parts:" );
![]()
foreach( string part in parts )
![]()
Console.WriteLine( part );
![]()
}
![]()
}
![]()