设计模式--建造者模式
2016-07-21 18:14
337 查看
文章参考
理解模型: 电脑的生产由dell搞定,电脑的组装由你搞定,你来决定安装顺序,虽然CPU和内存的安装 位置都已经给你规定好了,你就是导演
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 建造者模式 { class Program { static void Main(string[] args) { Director director = new Director(); Del del =(Del)director.CreateComputer(new DellBuilder()); //这里还可以new LenovoBuilder,整个程序中变化的代码量较少 Console.WriteLine("得到一台del电脑,内存是{0},cpu是{1}", del.Memory.ToString(), del.Cpu.ToString()); Console.ReadKey(); } } public interface ComputerBuilder { void buildMemory(); void buildCpu(); Computer buildComputer(); } public class Computer { public string Memory { get; set; } public string Cpu { get; set; } } public class Del : Computer { public Del() { this.Memory = "金士顿"; this.Cpu = "Intel"; } } public class Director { public Computer CreateComputer(ComputerBuilder com) { com.buildMemory(); com.buildCpu(); return com.buildComputer(); } } //生产代码 public class DellBuilder : ComputerBuilder { Computer computer; public DellBuilder() { computer = new Del(); } public Computer buildComputer() { return computer; } public void buildCpu() { Console.WriteLine("CPU安装完成,computer已经改变了,有了cpu"); } public void buildMemory() { Console.WriteLine("内存安装完成,computer已经改变,有了Memory"); } } }
相关文章推荐
- 分区
- Acperience
- 【codeforces】Pasha and Stick
- js:arguments示例
- h5关于居中的几个问题
- grails无法从domian生成表
- man ls
- 检测字符串包含字符串
- CodeForces 612B HDD is Outdated Technology
- 【Linux全面学习】6.Linux常用命令(重点)
- 【HDU】5726 GCD(2016 Multi-University)
- 通过正则表达式的进行输入限制的TextWatcher
- 史上最全的贝塞尔曲线(Bezier)全解(三):贝塞尔曲线实现满屏爱心
- CodeForces 610A Pasha and Stick
- Redis学习笔记三——redis分布式安装
- Socket Error # 10054
- 辖vim之威学习emacs -进阶篇
- iOS 客户端的本地缓存处理
- Fragment和Activity生命周期以及横竖屏切换对生命周期的影响
- poj2632 Crashing Robots