设计模式——构建器(Builder)模式

本文探讨了在面向对象编程中创建对象的不同方法,重点是针对包含多个参数的类。分析了重载构造器和JavaBean方式的优缺点,并详细介绍了Builder模式的运用,以解决可读性、扩展性和线程安全问题。具体实现中,Builder模式通过静态嵌套类提供了一种更优雅、灵活的实例化方式。
摘要由CSDN通过智能技术生成

在面向对象的编程中对象的创建是最基本的动作,但是创建对象的方法有很多种,但是归根结底都是直接或者间接使用类的构造器完成实例的创建,包括静态工厂方法、JavaBean方式或者下面的要说的构建器模式,但是对于不同的情况,使用这几种方法各有利弊,这里使用一个实际的问题来引出这种对比。

【实际需求】

对一个包含10几个参数的类进行实例化,其中有些参数不是必须的,但是有些参数必须存在。

【问题分析】

首先对于实例化的这个动作,对于有编程经验的人再简单不过,第一个直接的想法就是写一个包含所有参数的构造器,但是回想一下这样真的好吗?每次初始化类的时候都会把自己弄晕,这个参数究竟是什么意思?

方法一:重载构造器

接触过Exception类构造器写法的人可能选择重载多个构造器的方法,如下:

public Exception()
public Exception(String message)
public Exception(String message, Throwable cause)
public Exception(Throwable cause)
protected Exception(String message, Throwable cause, 
    boolean enableSuppression,boolean writableStackTrace)

然后通过构造器之间的调用来完成初始化,但是当面对大量的实例参数时,需要扩展很多的构造器,显然这种方式的扩展性很差。

方法二:使用JavaBean方式

这种方式其实是不通过构造器传递参数,而是通过setter方法,如下:

public class User
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值