模式结构图
代码试例:
abstract class House
{
}
abstract class Door
{
}
abstract class Wall
{
}
abstract class Windows
{
}
abstract class Floor
{
}
abstract class HouseCeiling
{
}
public abstract class Builder
{
public abstract void BuildDoor();
public abstract void BuildWall();
public abstract void BuildWindows();
public abstract void BuildFloor();
public abstract void BuildHouseCeiling();
public abstract Hource GetHouse();
}
public class GameManger
{
public class House CreateHouse(Builder builder)
{
builder.BuilderDoor();
builder.BuilderDoor();
builder.BuilderWall();
builder.BuilderWall();
builder.BuilderWindows();
builder.BuilderWindows();
builder.BuilderFloor();
builder.BuilderHouseCeiling();
return builder.GetHouse();
}
}
public class RomanHouse:House
{
}
public class RomanDoor:Door
{
}
public class RomanWindows:Windows
{
}
public class RomanFloor:Floor
{
}
public class RomanWall:Wall
{
}
public class RomanHouseCeiling:HouseCeiling
{
}
public class RomanHouseBuilder:Builder
{
public override void BuildDoor()
{
}
public override void BuildWall()
{
}
public override void BuildWindows()
{
}
public override void BuildFloor()
{
}
public override void BuildHouseCeiling()
{
}
public override House GetHouse()
{
}
}
class App
{
public static void Main()
{
string assemblyName = configurationSettings["BuilderAssembly"];
string builderName = configurationSettings["BuilderClass"];
Assembly assembly = Assembly.Load(assemblyName)
Type t = assembly.GetType("buildeName");
Builder builder = Activator.CreateInatance(t);
House house = GameManager.CreateHouse(builder);
}
}


浙公网安备 33010602011771号