设计模式---建造者(Builder)模式,有关系图

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace ConsoleApplication1
  5. {
  6.     abstract class Builder
  7.     {
  8.         public abstract void SetPrice();
  9.         public abstract void SetName();
  10.     }
  11.     class TVBuilder:Builder
  12.     {
  13.         private RawMateria rm;
  14.         public TVBuilder()
  15.         {
  16.             rm = new RawMateria();
  17.         }
  18.     
  19.         public override  void SetPrice()
  20.         {
  21.             rm.Price = "1500";
  22.         }
  23.         public override void SetName()
  24.         {
  25.             rm.Name = "TV";
  26.         }
  27.         public RawMateria GetTV()
  28.         {
  29.             return rm;
  30.         }
  31.     }
  32.     class PCBuilder:Builder 
  33.     {
  34.         private RawMateria rm;
  35.     
  36.         public PCBuilder()
  37.         {
  38.             rm = new RawMateria();
  39.         }
  40.         public override void SetName()
  41.         {
  42.             rm.Name = "PC";
  43.         }
  44.         public override void SetPrice()
  45.         {
  46.             rm.Price = "2000";
  47.         }
  48.         public RawMateria GetPC()
  49.         {
  50.             return rm;
  51.         }
  52.     }
  53.     class RawMateria
  54.     {
  55.         String _name;
  56.         String _price;
  57.         public String Name
  58.         {
  59.             get
  60.             {
  61.                 return _name;
  62.             }
  63.             set
  64.             {
  65.                 _name = value;
  66.             }
  67.         }
  68.         public String Price
  69.         {
  70.             get
  71.             {
  72.                 return _price;
  73.             }
  74.             
  75.             set
  76.             {
  77.                 _price = value;
  78.             }
  79.         }
  80.         public void Show()
  81.         {
  82.             Console.WriteLine(this.Name +"    "+this.Price );
  83.         }
  84.     }
  85.     class Director
  86.     {
  87.         private PCBuilder pcbuilder=new PCBuilder ();
  88.         private TVBuilder tvbuilder=new TVBuilder ();
  89.         public RawMateria GiveMeTV()
  90.         {
  91.             tvbuilder.SetName();
  92.             tvbuilder.SetPrice();
  93.             return tvbuilder.GetTV();
  94.         }
  95.         public RawMateria GiveMePC()
  96.         {
  97.             pcbuilder.SetName();
  98.             pcbuilder.SetPrice();
  99.             return pcbuilder.GetPC();
  100.         }
  101.     }
  102.     class Client
  103.     {
  104.         public static  void Main()
  105.         {
  106.             Director d = new Director();
  107.             d.GiveMePC().Show();
  108.             d.GiveMeTV().Show();
  109.             Console.Read();
  110.         }
  111.     }
  112. }
  113. 设计模式---建造者(Builder)模式,有关系图
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值