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,该类的作用主要有两个:
    一、它隔离客户与生产过程;
    二、它负责控制产品的生成过程。指挥者针对抽象建造者编程,客户端只需要知道具体建造者的类型,无须关心产品对象的具体组装过程,即可通过指挥者类调用建造者的相关方法,返回一个完整的产品对象。

  • 相关阅读:
    HTML
    JavaScript事件对象
    JavaScript 事件入门
    如何向github上传文件
    crystal
    BUUCTF[强网杯 2019]随便注wp
    BUUCTF[CISCN2019 华东南赛区]Web4 wp
    BUUCTF[NPUCTF2020]ezinclude wp
    Windows下Ant的环境配置
    Java解惑(1)——表达式之谜
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/8880719.html
Copyright © 2011-2022 走看看