想请教一下会设计模式的高手,这样写算不算叫builder 模式?

zsyok 2011-04-17 11:24:06

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


如题
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonwrite 2011-04-18
  • 打赏
  • 举报
回复
自己对比一下
http://blog.csdn.net/aladdinty/archive/2008/12/23/3589716.aspx
zsyok 2011-04-18
  • 打赏
  • 举报
回复
怎么就没人回呢?
  • 打赏
  • 举报
回复
看着,算是。
子夜__ 2011-04-18
  • 打赏
  • 举报
回复
如果把注释加上 效果就不一样了。
ycproc 2011-04-18
  • 打赏
  • 举报
回复
流枫Maple 2011-04-18
  • 打赏
  • 举报
回复
只对MVC情有独钟....
So_CooL 2011-04-18
  • 打赏
  • 举报
回复
看着比较优美.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧