62,046
社区成员
发帖
与我相关
我的任务
分享
public abstract class House
{
public Door door { get; set; }
public Windows windows { get; set; }
}
#region 创建一组 抽像
public abstract class Door
{
public abstract void CreateDoor();
}
public abstract class Windows
{
public abstract void CreateWindows();
}
#endregion
public abstract class Builder
{
public abstract void BuildDoor();
public abstract void BuildWindows();
public abstract House GetHouse();
}
public class Director
{
public static House CreateHouse(Builder builder)
{
builder.BuildDoor();
builder.BuildWindows();
return builder.GetHouse();
}
}
public class ProductHouse : House
{
}
#region 创建Romain Door Wall Windows Floor Houseceiling
public class ProductDoor : Door
{
public override void CreateDoor()
{
Console.WriteLine("创建Product Door");
}
}
public class ProductWindows : Windows
{
public override void CreateWindows()
{
Console.WriteLine("创建Product Windows");
}
}
#endregion
public class ProductHouseBuilder : Builder
{
ProductHouse h = new ProductHouse();
public override void BuildDoor()
{
//return new RomainDoor();
h.door = new ProductDoor();
}
public override void BuildWindows()
{
//return new RomainWindows();
h.windows = new ProductWindows(); ;
}
public override House GetHouse()
{
return h;
}
}
class tetst
{
public static void Main()
{
House hourse = Director.CreateHouse(new ProductHouseBuilder());
hourse.door.CreateDoor();
hourse.windows.CreateWindows();
}
}
看着比较优美.