• C#设计模式之建造者(Builder)模式示例源代码(外摘)


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


     }
    }

  • 相关阅读:
    2016某天闲谈
    APP测试入门篇之APP基础知识(001)
    windows服务器下frp实现内网穿透
    nginx使用与配置
    spring boot 实现优雅的关闭
    spring boot 自定义sql分页查询
    java获取类加载路径和项目根路径的5种方法
    linux下 启动node 和关闭node
    docker 安装 fastdfs
    docker 常用命令和常用容器启动
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/710764.html
Copyright © 2020-2023  润新知