建造者模式
来源:互联网 发布:焦点堆叠软件 编辑:程序博客网 时间:2024/06/05 00:09
建造者模式是一种创建型模式,它主要是应对项目中一些复杂对象的创建工作。所谓“复杂对象”,是指此对象中还含有其它的子对象。我们现在定义一个场景:汽车生产必须包含车轮(Wheel)、油箱(OilBox)和车身(Body),应用建造者模式,用C#控制台应用程序实现该设计,构建BMW品牌和BenZ品牌汽车生产。绘制该模式的UML图。
namespace shiyan4jianzaozhemoshi{ class Product { private string partA; private string partB; private string partC; public string PartA { set { partA = value; } get { return partA; } } public string PartB { set { partB = value; } get { return partB; } } public string PartC { set { partC = value; } get { return partC; } } public void Introduce() { Console.WriteLine(PartA); Console.WriteLine(PartB); Console.WriteLine(PartC); Console.WriteLine(); } } abstract class Builder { protected Product product = new Product(); public abstract void BuildPartA(); public abstract void BuildPartB(); public abstract void BuildPartC(); public Product GetResult() { return product; } } class ConcreteBuilderBMW : Builder { public override void BuildPartA() { product.PartA = "Finish Wheel for BMW"; } public override void BuildPartB() { product.PartB = "Finish OilBox for BMW"; } public override void BuildPartC() { product.PartC = "Finish Body for BMW"; } } class ConcreteBuilderBenZ : Builder { public override void BuildPartA() { product.PartA = "Finish Wheel for BenZ"; } public override void BuildPartB() { product.PartB = "Finish OilBox for BenZ"; } public override void BuildPartC() { product.PartC = "Finish Body for BenZ"; } } class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; } public void SetBuilder(Builder builder) { this.builder = builder; } public void Construct() { builder.BuildPartA(); builder.BuildPartB(); builder.BuildPartC(); } } class Program { static void Main(string[] args) { Product pt; Builder bd = new ConcreteBuilderBMW(); Director dt = new Director(bd); dt.Construct(); pt = bd.GetResult(); pt.Introduce(); bd = new ConcreteBuilderBenZ(); dt.SetBuilder(bd); dt.Construct(); pt = bd.GetResult(); pt.Introduce(); //Console.ReadKey(); //Console.ReadLine(); //Console.Read(); } }}
阅读全文
0 0
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 建造者模式
- 建造者模式
- 建造者模式(Builder)
- 建造者模式
- php面试题
- 计算机(SoC)系统启动的比较与分析
- u3d的3dText一直正面显示的方法:让用户看不到反面的文字
- 深度学习的发展历程
- linux(centos)用户与权限
- 建造者模式
- C++/MFC-CString类
- iptables命令
- 什么是模块,模块和应用程序的区别,模块的好处
- 【转】操作系统常见面试题总结
- 蛇形填数
- arduino 根据引脚电平与Zigbee链接控制继电器通断(32字节处理)
- 原生JavaScript实现Ajax(三):ajax函数的最终封装
- java学习【知识点及代码18】