zoukankan      html  css  js  c++  java
  • c# 24种设计模式4建造者模式(Builder)

    先来一个例子

    建造者接口
     public interface IBuilder
        {
            void CreateLogo();
            void CreateBody();
            void CreateWheel();
            void CreateChair();
        }

    宝马和大奔子类继承

      public class Benz : IBuilder
        {
            public void CreateLogo()
            {
                Console.WriteLine("创建奔驰的logo");
            }
            public void CreateBody()
            {
                Console.WriteLine("创建奔驰的身体");
            }
            public void CreateWheel()
            {
                Console.WriteLine("创建奔驰的轮子");
            }
            public void CreateChair()
            {
                Console.WriteLine("创建奔驰的椅子");
            }
        }
     public class BMW : IBuilder
        {
            public void CreateLogo()
            {
                Console.WriteLine("创建宝马的logo");
            }
            public void CreateBody()
            {
                Console.WriteLine("创建宝马的身体");
            }
            public void CreateWheel()
            {
                Console.WriteLine("创建宝马的轮子");
            }
            public void CreateChair()
            {
                Console.WriteLine("创建宝马的椅子");
            }
        }

    Director 主管

      public class Director1
        {
            public void Constructor(IBuilder builder)
            {
                builder.CreateLogo();
                builder.CreateBody();
                builder.CreateWheel();
                builder.CreateChair();
            }
        }

    Main 客户端

     static void Main(string[] args)
            {
                Director1 director = new Director1();
    
                director.Constructor(new Benz());
    
                director.Constructor(new BMW());
    
                Console.ReadLine();
            }

     建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

    建造者模式包含如下角色:
    Builder:抽象建造者
    ConcreteBuilder:具体建造者
    Director:指挥者
    Product:产品角色

    建造者模式的结构中还引入了一个指挥者类Director,该类的作用主要有两个:
    一、它隔离客户与生产过程;
    二、它负责控制产品的生成过程。指挥者针对抽象建造者编程,客户端只需要知道具体建造者的类型,无须关心产品对象的具体组装过程,即可通过指挥者类调用建造者的相关方法,返回一个完整的产品对象。

  • 相关阅读:
    (原)试问那些不劳而获的人?
    (原)资源互换原则
    (原)关于与人沟通时的几个中文语法
    osgviewer读取dxf文件,拣选高亮功能小结
    qt的OSG视图中拣选对象事件消息
    1)OSG与QT单文档视图的结合
    三维渲染引擎设计与实践(八)
    三维渲染引擎设计与实践(七)
    三维渲染引擎设计与实践(六)
    三维渲染引擎设计与实践(五)
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/8880719.html
Copyright © 2011-2022 走看看