首页 / 设计模式 / 设计模式学习笔记-建造者模式
设计模式学习笔记-建造者模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式学习笔记-建造者模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1844字,纯文字阅读大概需要3分钟。
内容图文
一、概述
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;
二、模式中的角色
Builder:为创建一个Product对象的各个部件指定抽象接口;
ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件;定义并明确它所创建的表示;提供一个检索产品的接口;
Director:构造一个使用Builder接口的对象;
Product:表示被构造的复杂对象,ConcreteBuilder创建该产品的内部表示并定义它的装配过程;包含定义组成部件的类,包括将这些部件装配成最终产品的接口;
三、UML类图
四、代码实现
/// <summary> /// 产品类 /// </summary> public class Product { List<string> parts = new List<string>(); publicvoid Add(string part) { parts.Add(part); } publicvoid Show() { Console.WriteLine("\n 产品创建------"); foreach (var item in parts) { Console.WriteLine(item); } } } ///<summary>/// 抽象建造者类 ///</summary>publicabstractclass Builder { publicabstractvoid BuilderPart1(); publicabstractvoid BuilderPart2(); publicabstract Product GetResult(); } ///<summary>/// 具体建造者类 ///</summary>publicclass ConcreteBuilder : Builder { private Product product = new Product(); ///<summary>/// 部件1 ///</summary>publicoverridevoid BuilderPart1() { product.Add("部件1"); } ///<summary>/// 部件2 ///</summary>publicoverridevoid BuilderPart2() { product.Add("部件2"); } ///<summary>/// 输出结果 ///</summary>///<returns></returns>publicoverride Product GetResult() { return product; } } ///<summary>/// 指挥者类 ///</summary>publicclass Director { ///<summary>/// 用来指挥建造过程 ///</summary>///<param name="builder"></param>publicvoid Construct(Builder builder) { builder.BuilderPart1(); builder.BuilderPart2(); } } #region 建造者模式 Director director = new Director(); Builder builder1 = new ConcreteBuilder(); director.Construct(builder1); Product product1 = builder1.GetResult(); product1.Show(); #endregion
5、应用场景
5.1:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的转配方式时;
5.2:当构造过程必须允许被构造的对象有不同的表示时;
参考书籍《设计模式-可复用面向对象软件的基础》
原文:http://www.cnblogs.com/ricky-wang/p/6666922.html
内容总结
以上是互联网集市为您收集整理的设计模式学习笔记-建造者模式全部内容,希望文章能够帮你解决设计模式学习笔记-建造者模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。