- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace ConsoleApplication1
- {
- abstract class Builder
- {
- public abstract void SetPrice();
- public abstract void SetName();
- }
- class TVBuilder:Builder
- {
- private RawMateria rm;
- public TVBuilder()
- {
- rm = new RawMateria();
- }
- public override void SetPrice()
- {
- rm.Price = "1500";
- }
- public override void SetName()
- {
- rm.Name = "TV";
- }
- public RawMateria GetTV()
- {
- return rm;
- }
- }
- class PCBuilder:Builder
- {
- private RawMateria rm;
- public PCBuilder()
- {
- rm = new RawMateria();
- }
- public override void SetName()
- {
- rm.Name = "PC";
- }
- public override void SetPrice()
- {
- rm.Price = "2000";
- }
- public RawMateria GetPC()
- {
- return rm;
- }
- }
- class RawMateria
- {
- String _name;
- String _price;
- public String Name
- {
- get
- {
- return _name;
- }
- set
- {
- _name = value;
- }
- }
- public String Price
- {
- get
- {
- return _price;
- }
- set
- {
- _price = value;
- }
- }
- public void Show()
- {
- Console.WriteLine(this.Name +" "+this.Price );
- }
- }
- class Director
- {
- private PCBuilder pcbuilder=new PCBuilder ();
- private TVBuilder tvbuilder=new TVBuilder ();
- public RawMateria GiveMeTV()
- {
- tvbuilder.SetName();
- tvbuilder.SetPrice();
- return tvbuilder.GetTV();
- }
- public RawMateria GiveMePC()
- {
- pcbuilder.SetName();
- pcbuilder.SetPrice();
- return pcbuilder.GetPC();
- }
- }
- class Client
- {
- public static void Main()
- {
- Director d = new Director();
- d.GiveMePC().Show();
- d.GiveMeTV().Show();
- Console.Read();
- }
- }
- }

设计模式---建造者(Builder)模式,有关系图
本文介绍了一个使用C#实现的建造者模式示例,通过抽象基类Builder定义产品构建的共同步骤,具体建造者如TVBuilder和PCBuilder分别完成电视和电脑的构建过程。通过Director类协调具体的建造流程。

被折叠的 条评论
为什么被折叠?



