设计模式之创建者模式
来源:互联网 发布:制作手机视频软件 编辑:程序博客网 时间:2024/04/30 16:34
1.什么是创建者模式(构建者模式)?
创建者模式类似于一个步骤基本固定,但是每个步骤中的具体形式却又可以变化的这类对象的创建。其中,创建者负责构建一个对象的各个部分,并且完成组装的过程。如,做饭过程
2.意图是什么?
将类的构建逻辑转移到类的实例化外部。
3.创建者模式解读
1)类图
2)角色分析
Product:所需要创建的对象类,由具体环境确定;
IBuild:创建工具接口/抽象类,包括对象组装所需的所有步骤的接口声明;
Build:创建工具具体实现类;Product对象作为其成员;
Directr:引导者,来引导对象的具体组装过程;而具体对象的创建还是靠对象本身提供的相应方法,Builder只是调用对象的方法完成组装步骤;
Client:最终使用者。
4.创建者模式举例
1)定义产品类
class Product { List <string> parts = new List <string> (); public void Add(string part) { parts.Add(part); } public void Display() { Console.WriteLine("\nProduct Parts -------"); foreach (string part in parts) Console.Write(part); Console.WriteLine(); } }
2)定义创建工具接口
interface IBuilder { void BuildPartA(); void BuildPartB(); Product GetResult(); }
3)定义创建工具具体实现类
class Builder1 : IBuilder { private Product product = new Product(); public void BuildPartA() { product.Add("PartA "); } public void BuildPartB() { product.Add("PartB "); } public Product GetResult() { return product; } } class Builder2 : IBuilder { private Product product = new Product(); public void BuildPartA() { product.Add("PartX "); } public void BuildPartB() { product.Add("PartY "); } public Product GetResult() { return product; } }
4)定义引导者类
class Director { // Builder uses a complex series of steps public void Construct(IBuilder builder) { builder.BuildPartA(); builder.BuildPartB(); builder.BuildPartB(); } }
5)定义消费者类
public static void Main() { // Create one director and two builders Director director = new Director(); IBuilder b1 = new Builder1(); IBuilder b2 = new Builder2(); // Construct two products director.Construct(b1); Product p1 = b1.GetResult(); p1.Display(); director.Construct(b2); Product p2 = b2.GetResult(); p2.Display(); Console.ReadKey(); }
1)构建者构建类对象的过程通常是分步骤的,这使得该模式通常被应用于解析文本以创建对象的场景。
2)具有依赖关系或者组合关系的对象的创建尤为适合。
3)通常用在在构建解释器和用户界面上。
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- JAVA设计模式之创建者模式
- c++ 设计模式之创建者(生成器)模式
- java 设计模式之八-创建者模式
- 设计模式之创建者模式 c++ 实现
- 设计模式之创建者模式(Builder)
- java设计模式 之 创建者模式
- c++ 设计模式之创建者(生成器)模式
- Swift设计模式之创建者模式
- JAVA设计模式之创建者模式
- Eclipse中配置Ajax的DWR的简单方法
- gdb调试
- delete操作相关
- WSDL2Java操作指南
- 算法导论 4.4-3
- 设计模式之创建者模式
- Doris安装与使用心得(二) - Doris下载与安装
- Windows PowerShell 命令收集
- introduction to ORACLE rac(RAC)--20130207
- Tomcat上开发Web应用如何保证兼容性
- StringBuffer的用法
- 超越竞争对手的秘密武器-技术重用
- servlet中使用session
- Java String 与 StringBuffer 用法区别