程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#設計模式之建造者(Builder)模式示例源代碼

C#設計模式之建造者(Builder)模式示例源代碼

編輯:C#基礎知識

using System;

using System.Collections;

//product

public class Computer

{private string Type;

private Hashtable info=new Hashtable ();

public Computer(string type)

{ Type=type;

Console .WriteLine ("Conputer "+type+" is Builded!");

}

public string this[string key]

{ get

{ return (string)info[key];

}

set

{ info[key]=value;

}

}

public void Show()

{Console .WriteLine ("this is a computer of "+Type+" :");

Console .WriteLine ("   "+info["cpu"]);

Console .WriteLine ("   "+info["ram"]);

}

}

//Builder

public abstract class Builder

{ protected Computer computer;

public Computer Computpter

{ get

{  return computer;

}

}

public Builder(string type)

{computer=new Computer (type);

}

abstract public void BuildCpu();

abstract public  void BuilderRam();



}

public class MacBuilder:Builder

{ public MacBuilder(string type):base(type)

{}

public override void BuildCpu()

{  computer["cpu"]="MacCpu";

}

public override void BuilderRam()

{  computer["ram"]="MacCpu";

}

}

public class pcBuilder:Builder

{ public pcBuilder(string type):base(type)

{}

public override void BuildCpu()

{computer["cpu"]="pcCpu";

}

public override void BuilderRam()

{computer["ram"]="pcCpu";

}

}public class Worker

{ public void Construct(Builder builder)

{ builder.BuildCpu();

builder.BuilderRam();

}

}

public  class CEO

{ public static void Main()

{  try

{  Worker Worker=new Worker ();

Builder PcBuilder=new pcBuilder ("Pc");

Builder MacBuilder=new MacBuilder ("Mac");



Worker .Construct(PcBuilder);

Worker.Construct(MacBuilder);

PcBuilder.Computpter.Show ();

MacBuilder.Computpter.Show ();

}

catch(Exception ex)

{

Console.WriteLine ("Error:"+ex.Source+" "+ex.InnerException+ex.StackTrace+ex.TargetSite);

}

}

}



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved