My Builder in C#

//MyBuilder
using System;
using System.Collections;

///product///
class HomePage
{
 //Fields
 private string pagetype;
 private string samplecode;
 private Hashtable parts=new Hashtable(); 
 //Construcrors
 public HomePage(string pagetype)
 {
  this.pagetype=pagetype;
  samplecode="<html><body>parttable,partspan</body></html>";
 }
 //Indexers
 public object this [string key]
 {
  get{return parts[key];}
  set{parts[key]=value;}
 }

 //Methods
 public void PrintHTMLCode()
 {
  samplecode=samplecode.Replace("parttable",parts["table"].ToString());
  samplecode=samplecode.Replace("partspan",parts["span"].ToString());
  Console.WriteLine(samplecode);
 }

};

///product///
//director
class PageDirector
{
 public void Construct(PageBuilder pagebuilder)
 {
  pagebuilder.BuildFrame();
  pagebuilder.BuildTable();
  pagebuilder.BuildSpan();
 }
 
};
//director
///builder///
abstract class PageBuilder
{
 //Fields
 protected HomePage homepage;
    //Properties
 public HomePage HomePage
 {
  get{return homepage;}
 }
 //Methods
 abstract public void BuildFrame();
 abstract public void BuildTable();
 abstract public void BuildSpan();
}

class CoolBuilder : PageBuilder
{
 override  public void BuildFrame()
 {
  homepage=new HomePage("coolpage");
 }
 override  public void BuildTable()
 {
  homepage["table"]="<table color=cool><tr><td><td></tr></table>";
 }
 override  public void BuildSpan()
 {
  homepage["span"]="<span color=cool></span>";
 }
};

class WormBuilder : PageBuilder
{
 override  public void BuildFrame()
 {
  homepage=new HomePage("wormpage");
 }
 override  public void BuildTable()
 {
  homepage["table"]="<table color=worm><tr><td><td></tr></table>";
 }
 override  public void BuildSpan()
 {
  homepage["span"]="<span color=worm></span>";
 }
};

class ClearBuilder : PageBuilder
{
 override  public void BuildFrame()
 {
  homepage=new HomePage("clearpage");
 }
 override  public void BuildTable()
 {
  homepage["table"]="<table color=clear><tr><td><td></tr></table>";
 }
 override  public void BuildSpan()
 {
  homepage["span"]="<span color=clear></span>";
 }
};


///builder///

//MyBuilder test
class TestApp
{
 public static void Main(string[] args)
 {
  PageBuilder b1=new CoolBuilder();
  PageBuilder b2=new WormBuilder();
  PageBuilder b3=new ClearBuilder();

        PageDirector pagedirector=new PageDirector();

  pagedirector.Construct(b1);
  pagedirector.Construct(b2);
  pagedirector.Construct(b3);

  b1.HomePage.PrintHTMLCode();
  b2.HomePage.PrintHTMLCode();
  b3.HomePage.PrintHTMLCode();

  while(true){}

 }
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值