小马的天空
我为软狂

导航

 

模式结构图





代码试例:

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);
  }

}
posted on 2006-07-02 23:53  Vinson  阅读(215)  评论(0)    收藏  举报