设计模式之构建者(Builder)模式
2014-07-07 12:45
330 查看
意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 下面会发现模式实现方式与策略模式,桥接模式等都是相似的,唯有意图不同而已.此为创建者模式
![](http://images.cnblogs.com/cnblogs_com/Clingingboy/WindowsLiveWriter/2558088ae1c6_13B1C/image_2_thumb.png)
创建者模式在平时生活中很常见,如肯德基的套餐,可乐可以跟很多东西组合成一个套餐.而你向服务员要的就是一个套餐,服务员就把不同东西组合在一起成了一个套餐,然后给你.
1.定义产品类
原始链接:http://www.cnblogs.com/Clingingboy/archive/2010/08/26/1809558.html
![](http://images.cnblogs.com/cnblogs_com/Clingingboy/WindowsLiveWriter/2558088ae1c6_13B1C/image_2_thumb.png)
创建者模式在平时生活中很常见,如肯德基的套餐,可乐可以跟很多东西组合成一个套餐.而你向服务员要的就是一个套餐,服务员就把不同东西组合在一起成了一个套餐,然后给你.
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(); } 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; } }3.开始组合创建
class Director { // Builder uses a complex series of steps public void Construct(IBuilder builder) { builder.BuildPartA(); builder.BuildPartB(); builder.BuildPartB(); } }4.客户端调用
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(); }此模式也是抽象的结果,与其他一些模式实现方式差不多,唯一不同的是意图
原始链接:http://www.cnblogs.com/Clingingboy/archive/2010/08/26/1809558.html
相关文章推荐
- 设计模式-Builder构建者模式
- 设计模式——构建者模式(Builder)
- 常用设计模式(一)Builder(构建者)模式
- 设计模式之构建者Builder模式
- 设计模式之构建者模式(Builder):初步理解
- 设计模式4 - 构建者模式Builder Design Pattern
- 设计模式——__构建者模式 Builder模式
- 设计模式中的构建者Builder模式&c++
- 设计模式之构建者模式(Builder)
- Java设计模式--构建者模式(Builder)
- 设计模式学习之构建者模式(Builder)
- Java/Android 构建者(Builder)设计模式(又叫生成器模式)
- 设计模式之Builder——购机篇
- 设计模式之Builder
- 设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
- 设计模式笔记(1 ABSTRACT FACTORY & BUILDER)
- [设计模式]Abstract Factory和Builder
- Java设计模式:Builder(建设者模式)
- C#设计模式之建造者(Builder)模式示例源代码
- 设计模式PHP5实现之----生成器(Builder)