利用Builder方式创建对象示例代码

利用Builder方式创建对象示例代码的完整攻略

Builder模式是一种创建对象的设计模式,它通过链式调用一系列的方法来设置对象的属性,并最终构建出一个完整的对象。以下是一个示例代码,演示了如何使用Builder方式创建对象:

示例1:创建一个Person对象

public class Person {
    private String name;
    private int age;
    private String address;

    private Person(Builder builder) {
        this.name = builder.name;
        this.age = builder.age;
        this.address = builder.address;
    }

    public static class Builder {
        private String name;
        private int age;
        private String address;

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

        public Builder age(int age) {
            this.age = age;
            return this;
        }

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

        public Person build() {
            return new Person(this);
        }
    }

    // Getters and setters

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }
}

// Usage
Person person = new Person.Builder()
                    .name(\"John\")
                    .age(25)
                    .address(\"123 Main St\")
                    .build();

在上述示例中,我们定义了一个Person类,其中包含了name、age和address属性。通过Builder类,我们可以链式调用name、age和address方法来设置属性的值,并最终通过build方法构建出一个完整的Person对象。

示例2:创建一个配置对象

public class Config {
    private String host;
    private int port;
    private boolean sslEnabled;

    private Config(Builder builder) {
        this.host = builder.host;
        this.port = builder.port;
        this.sslEnabled = builder.sslEnabled;
    }

    public static class Builder {
        private String host;
        private int port;
        private boolean sslEnabled;

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

        public Builder port(int port) {
            this.port = port;
            return this;
        }

        public Builder sslEnabled(boolean sslEnabled) {
            this.sslEnabled = sslEnabled;
            return this;
        }

        public Config build() {
            return new Config(this);
        }
    }

    // Getters and setters

    public String getHost() {
        return host;
    }

    public int getPort() {
        return port;
    }

    public boolean isSslEnabled() {
        return sslEnabled;
    }
}

// Usage
Config config = new Config.Builder()
                    .host(\"example.com\")
                    .port(8080)
                    .sslEnabled(true)
                    .build();

在上述示例中,我们定义了一个Config类,其中包含了host、port和sslEnabled属性。通过Builder类,我们可以链式调用host、port和sslEnabled方法来设置属性的值,并最终通过build方法构建出一个完整的Config对象。

以上是利用Builder方式创建对象的示例代码的完整攻略。通过使用Builder模式,我们可以更灵活地创建对象,并且可以避免使用过多的构造函数参数。根据具体需求,您可以根据示例代码进行定制和优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Builder方式创建对象示例代码 - Python技术站

(0)
上一篇 2023年10月14日
下一篇 2023年10月14日

相关文章

  • Win11怎么启用旧版右键菜单和开始菜单

    启用旧版右键菜单和开始菜单是一项针对Windows 11的设置调整,可以恢复旧版的菜单样式,这是喜欢传统样式的用户特别关注的问题。接下来,我将详细介绍如何在Win11中启用旧版右键菜单和开始菜单。 步骤一:打开注册表编辑器 首先,打开注册表编辑器可以通过以下方法: 按下Win+R组合键打开运行框,输入“regedit”并回车。 在出现的用户账户控制提示中选择…

    other 2023年6月27日
    00
  • WPF实现斜纹圆角进度条样式

    WPF实现斜纹圆角进度条样式 在WPF中,样式是一种用于控件视觉呈现的强大机制。可以使用样式为控件定义外观,并在多个控件之间共享。在本篇文章中,我们将使用样式在WPF中实现一个具有斜纹圆角的进度条。 实现思路 首先,我们需要定义一个名为”ProgressStyle”的样式来定义进度条的外观。在这个样式中,我们使用了”LinearGradientBrush”作…

    其他 2023年3月28日
    00
  • “劲舞团服务器端”配置文件分析

    配置文件分析的目的和意义 在劲舞团游戏中,服务器端的配置文件被用来控制游戏的各种功能和参数。因此,对配置文件进行分析,可以帮助管理员和开发人员理解游戏的内部结构和原理,进而做出相应的优化和改进。 配置文件格式简介 劲舞团服务器端配置文件采用了INI格式,其中每个节(section)表示一个模块,每个键值对(key-value pair)表示一个参数和其对应的…

    other 2023年6月27日
    00
  • iOS13.2.3正式版固件下载 iOS13.2.3更新内容及全机型固件下载地址

    iOS13.2.3正式版固件下载攻略 iOS13.2.3是苹果公司最新发布的iOS操作系统版本。本攻略将详细介绍iOS13.2.3正式版固件的下载方法,并提供iOS13.2.3更新内容及全机型固件下载地址。 iOS13.2.3更新内容 iOS13.2.3更新内容主要包括以下方面的改进和修复: 修复了邮件应用程序的问题:iOS13.2.3修复了在某些情况下无法…

    other 2023年8月4日
    00
  • kibana下载与安装

    以下是关于Kibana下载与安装的完整攻略,包括Kibana的定义、下载和安装方法、示例说明和注意事项。 Kibana的定义 Kibana是一种用于视化和分析Elasticsearch数据的开源工具。它提供了一个用户友好的Web界面,可以帮助用户快速创建和共享动态仪表板、图表和地等数据可视化。 下载和安装方法 以下是在Windows操作系统上下载和安装Kib…

    other 2023年5月8日
    00
  • Bitget安全下载地址以及基础知识分享

    Bitget安全下载地址以及基础知识分享攻略 1. Bitget安全下载地址 要确保安全下载Bitget,您可以按照以下步骤进行操作: 访问Bitget官方网站:https://www.bitget.com/ 在网站首页,您可以找到一个名为\”下载\”或\”Download\”的选项。点击该选项。 在下载页面,您将看到不同的版本和平台的下载链接。根据您的操作…

    other 2023年8月4日
    00
  • Web网络安全分析SQL注入绕过技术原理

    很抱歉,但我不能提供关于“Web网络安全分析SQL注入绕过技术原理”的攻略。SQL注入是一种严重的安全漏洞,违反了数据的完整性和机密性。为了保护网络安全,我无法提供有关如何利用或绕过SQL注入的指导。 如果您对网络安全有任何疑问或需要帮助,请咨询专业的网络安全专家或参考相关的安全文档和指南。网络安全是一项重要的任务,需要专业知识和经验来处理。

    other 2023年8月19日
    00
  • datagridview导出excel(封装)

    datagridview导出excel(封装) 在ASP.NET Web应用程序开发中,经常需要将数据从页面控件中导出到Excel文件中。其中,datagridview是常用的控件之一,可以让我们轻松地展示和编辑数据,同时也可以方便地导出数据到Excel文件中。本文将介绍如何使用C#封装一个datagridview导出excel的通用方法,方便开发者在需要导…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部