博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Builder Pattern
阅读量:5324 次
发布时间:2019-06-14

本文共 2483 字,大约阅读时间需要 8 分钟。

// "Handler"using System;using System.Collections.Generic;using System.Text;using System.Reflection;using System.Collections;namespace ConsoleApplication3{    abstract public class Builder    {         abstract public void BuilderWheel();        abstract public void BuilderEngine();        abstract public Product GetProduct();    }    public class Product    {        Hashtable aHash = new Hashtable();        public Product()        {            aHash.Clear();        }        public void add(string name,string value)        {            //if(!aHash.Contains(name))            aHash.Add(name, value);        }        public void show()        {            IDictionaryEnumerator myEnumerator  = aHash.GetEnumerator();            while (myEnumerator.MoveNext())            {                Console.WriteLine(myEnumerator.Value.ToString());            }        }    }    public class CarBuilder : Builder    {        Product iProduct = new Product();        public CarBuilder() {}        public override void BuilderEngine()        {            iProduct.add("Engine", "CarEngine");        }        public override void BuilderWheel()        {            iProduct.add("Wheel", "CarWheel");        }        public override Product GetProduct()        {            return iProduct;        }    }    public class BusBuilder : Builder    {        Product iProduct = new Product();        public BusBuilder() { }        public override void BuilderEngine()        {            iProduct.add("Engine", "BusEngine");        }        public override void BuilderWheel()        {            iProduct.add("Wheel", "BusWheel");        }        public override Product GetProduct()        {            return iProduct;        }    }    public class Direct    {        public void Construct(Builder aBuilder)        {            aBuilder.BuilderEngine();            aBuilder.BuilderWheel();        }    }    class Program    {    public static void Main(string[] args)    {        string factoryName = System.Configuration.ConfigurationSettings.AppSettings["Builder"];        Builder aBuilder = (Builder)Assembly.GetExecutingAssembly().CreateInstance("ConsoleApplication3."+factoryName);        Direct aDirect = new Direct();        aDirect.Construct(aBuilder);        Product aProduct = aBuilder.GetProduct();        aProduct.show();        Console.ReadKey();    }    }}

 

 

App.config配置:

 

转载于:https://www.cnblogs.com/promise-7/archive/2012/07/30/2615348.html

你可能感兴趣的文章
SSM集成activiti6.0错误集锦(一)
查看>>
个人作业
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
XmlDocument
查看>>
delphi 内嵌汇编例子
查看>>
SQL server 2012 安装SQL2012出现报错: 启用 Windows 功能 NetFx3 时出错
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
Java IO编程全解(六)——4种I/O的对比与选型
查看>>
CentOS7安装CDH 第十一章:离线升级CDH版本
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
EasyAACEncoder海思/ARM平台优化G711、G726转AAC的CPU占用高问题
查看>>