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

  • 相关阅读:
    Win7安装netbeans 找不到JDK
    MyEclipse10 中设置Jquery提醒,亲测可用
    Property 'submit' of object #<HTMLFormElement> is not a function
    JSP Unable to compile class for JSP
    JSP session过期时间(小记)
    JSP乱码(小记)
    JS 正则表达式基础
    CSS 盒子模型
    Cmder--window开发者神器!!
    encodeURI和encodeURIComponent两者的区别
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/8880719.html
Copyright © 2011-2022 走看看