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

  • 相关阅读:
    jQuery碎语(1) 基础、选择要操作的元素、处理DOM元素
    C#位运算符的基本用法
    如何使用==操作符,Equals方法,ReferenceEquals方法,IEquatable接口比较2个对象
    C#实现ATM自动取款机
    如何使用C#关键字const,readonly,static
    用最简单的例子理解适配器模式(Adapter Pattern)
    前缀方式增1和后缀方式增1的区别
    抽象类可以有构造函数吗
    为什么使用抽象类,什么时候使用抽象类
    checked和unchecked的区别
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/8880719.html
Copyright © 2011-2022 走看看