c#建造者模式

来源:互联网 发布:网络剧河神百度云资源 编辑:程序博客网 时间:2024/05/22 23:27
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Customer{    class Program    {        static void Main(string[] args)        {            Director director = new Director();//指挥者            Builder b1 = new ConcreteBuilder1();            Builder b2 = new ConcreteBuilder2();            //组装第一台电脑            director.Construct(b1);            //组装完,搬过来电脑            Computer computer1 = b1.getComputer();            computer1.Show();            //组装第一台电脑            director.Construct(b2);            //组装完,搬过来电脑            Computer computer2 = b2.getComputer();            computer2.Show();            Console.Read();        }    }    public class Director    {        public void Construct(Builder builder)        {            builder.BuildPartCpu();            builder.BuildPartMainBoard();        }    }    public abstract class Builder    {        //CPU        public abstract void BuildPartCpu();        //装主板        public abstract void BuildPartMainBoard();        public abstract Computer getComputer();    }    public class ConcreteBuilder1 : Builder    {        Computer computer = new Computer();        public override void BuildPartCpu()        {            computer.Add("CPU1");        }        public override void BuildPartMainBoard()        {            computer.Add("Main board1");        }        public override Computer getComputer()        {            return computer;        }    }    internal class ConcreteBuilder2 : Builder    {        Computer computer = new Computer();        public override void BuildPartCpu()        {            computer.Add("CPU2");        }        public override void BuildPartMainBoard()        {            computer.Add("Main board2");        }        public override Computer getComputer()        {            return computer;        }    }    public class Computer    {        private IList<string> parts = new List<string>();        public void Add(string part)        {            parts.Add(part);        }        public void Show()        {            Console.WriteLine("电脑正在组装");            foreach (string part in parts)            {                Console.WriteLine("组件" + part + "已装好");            }            Console.WriteLine("电脑组装好了");        }    }}

1 0
原创粉丝点击