关于builder模式的一点想法

本文探讨了Builder模式在软件设计中的应用。通过实例说明了如何使用Builder模式简化对象创建过程,特别是当对象创建需要多个参数时。该模式不仅提高了代码的可读性和可维护性,还便于应对未来的需求变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当一个对象的创建需要复杂的步骤或过程,不妨把这个步骤或过程隔离和对象的创建动作本身隔离开来,这也就是builder模式的用武之地。
例如:
    有某个类ClassA,它的对象在构造时有10个参数需要初始化。通常最容易想到的方法是为这个类添加一个含有10个参数的构造函数,然后在构造函数中验证每个参数的有效性,这样做会大大加大ClassA的构造函数的复杂性。
    Class ClassA
    {
       public:
         ClassA(int p1, int p2, int p3, int p4, ..., int p10)
         {
             if (p1 xxx p2 xxx ... p10)
             {
                    xxxx;
             }
            
             config ClassA with p1~p10;
         }
    }

在这个情景下,我们可以把对p1~p10的验证代码从ClassA的构造函数中提取出来,封装到一个builder中,这样使ClassA的构造函数更加简洁。而当今后需求变动需要更改p1~p10的验证条件时,无需变动ClassA的构造函数。这也是OOD/P中封装变化思想的典型体现。
    再有,有时候一个类的许多初始化参数并不能一下子准备妥当,这时可以把收集各个参数的过程封装到一个builder中,待所有参数完好后,由builder调用类的构造函数,创建出对象。

    总之,builder模式的核心就是:把一个复杂类的对象的构建过程隔离封装起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值