Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java builder用法

作者:嗜神魔影   发布日期:2026-03-29   浏览:41

// Java Builder 模式示例代码

// 定义一个复杂的对象类,使用Builder模式来简化创建过程
public class Meal {

    private final String burger;
    private final String drink;
    private final String side;
    private final String dessert;

    // 私有构造函数,只能通过Builder来创建Meal对象
    private Meal(Builder builder) {
        this.burger = builder.burger;
        this.drink = builder.drink;
        this.side = builder.side;
        this.dessert = builder.dessert;
    }

    // Getter方法用于获取属性值
    public String getBurger() {
        return burger;
    }

    public String getDrink() {
        return drink;
    }

    public String getSide() {
        return side;
    }

    public String getDessert() {
        return dessert;
    }

    // 静态内部类Builder,用于构建Meal对象
    public static class Builder {
        private String burger;
        private String drink;
        private String side;
        private String dessert;

        // 构造函数可以设置必填项
        public Builder(String burger) {
            this.burger = burger;
        }

        // Setter方法用于设置可选项,并返回Builder本身以支持链式调用
        public Builder drink(String drink) {
            this.drink = drink;
            return this;
        }

        public Builder side(String side) {
            this.side = side;
            return this;
        }

        public Builder dessert(String dessert) {
            this.dessert = dessert;
            return this;
        }

        // build方法用于创建最终的Meal对象
        public Meal build() {
            return new Meal(this);
        }
    }

    // 示例用法
    public static void main(String[] args) {
        // 使用Builder模式创建一个Meal对象
        Meal meal = new Meal.Builder("Cheeseburger")
                .drink("Coke")
                .side("Fries")
                .dessert("Ice Cream")
                .build();

        // 打印Meal对象的属性
        System.out.println("Burger: " + meal.getBurger());
        System.out.println("Drink: " + meal.getDrink());
        System.out.println("Side: " + meal.getSide());
        System.out.println("Dessert: " + meal.getDessert());
    }
}

解释说明:

  1. Meal 类:这是一个复杂的对象,包含多个属性(如汉堡、饮料、配菜和甜点)。为了简化这个复杂对象的创建过程,我们使用了Builder模式。
  2. 私有构造函数Meal类的构造函数是私有的,这意味着不能直接通过new Meal()来创建对象。而是必须通过Builder类来创建。
  3. Builder 类:这是Meal类的一个静态内部类,它提供了链式调用来设置Meal对象的各个属性。每个setter方法都返回Builder对象本身,以便可以连续调用多个setter方法。
  4. build 方法:在设置了所有需要的属性后,调用build()方法来创建最终的Meal对象。
  5. 示例用法:在main方法中,展示了如何使用Builder模式来创建一个Meal对象,并打印其属性。

这种方式使得创建复杂对象的过程更加清晰和灵活,尤其是在对象有很多可选参数的情况下。

上一篇:java copy对象

下一篇:java生成唯一id

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站