C#中的Builder模式

本文介绍了C#中的Builder模式,旨在分离复杂对象构建过程和表现形式。通过UML图和示例展示了如何使用Builder模式构建房屋,强调了Director与Builder的关系及与TemplateMethod模式的区别。
摘要由CSDN通过智能技术生成

C#中的Builder模式

设计模式中的Builder模式,又叫建造者模式,是一种常用的模式,它主要的作用是分离一个复杂对象的构建过程和复杂对象的表现形式,抽象出构建过程,这样可以使用相同的构建过程,配合依赖注入构建出不用的产品。
 

UML

在这里插入图片描述
其中有两点需要注意。

  • Director和Builder之间是聚合关系而不是合成关系,暗示Director不需要对Builder的生命周期负责,Builder在外部创造并通过依赖注入的方式进入Director。
  • 客户代码使用的时候可以通过Directory间接操作Builder,完成复杂对象的构造,不用直接调用Builder的各个方法。通过这样我们确保Directory统一了复杂对象的创造逻辑。

 

一个例子

考虑一下一个例子,我们创造一个房子,当然,房子有很多种,有别墅,平房,楼房等,但是抽象的看来,每个房子都需要一下几个步骤

  • CreateWall
  • CreateRoom
  • CreateWindow
  • CreateDoor

而一个房子大概也需要如下属性

  • Wall
  • Room
  • Window
  • Door

这样,我们试着来抽象出房子(在这里是我们的Product)和建造者接口。

    public class House
    {
   
        public string Type {
    get; set; }
        public House(string type)
        {
   
            Type = type;            
        }
    }

很简单的一个类,仅仅一个属性,接着是创建者接口。

    interface IHouseBuilder
    {
   
        void CreateWall();
        void CreateRoom();
        void CreateWindow(<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值