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

转载于:https://www.cnblogs.com/zuochanzi/p/8880719.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值