java Builder模式

Builder 模式也叫建造者模式,builder模式的作用将一个复杂对象的构建与他的表示分离,一步一步创建一个复杂对象的创建型模式。在不知道内部建造细节的情况下,可以更精细的控制对象的构造流程。目的就是为了解耦。

public class UserInfo {
    private String name;
    private String zhName;
    private String account;
    private String password;
    public UserInfo(String name, String zhName, String account, String password) {
        this.name = name;
        this.zhName = zhName;
        this.account = account;
        this.password = password;
    }
    public UserInfo() {
    }
    public static class Builder{
        private String name;
        private String zhName;
        private String account;
        private String password;

        public Builder name(String name){
            this.name = name;
            return this;
        }
        public Builder zhName(String zhName){
            this.zhName = zhName;
            return this;
        }
        public Builder account(String account){
            this.account = account;
            return this;
        }
        public Builder password(String password){
            this.password = password;
            return this;
        }
        public UserInfo build(){
            return new UserInfo(this.name,this.zhName,this.account,this.password);
        }

    }
    public static Builder builder() {
        return new Builder();
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "name='" + name + '\'' +
                ", zhName='" + zhName + '\'' +
                ", account='" + account + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
public static void main(String[] args) {
    UserInfo userInfo=UserInfo.builder()
            .name("小明")
            .zhName("夏明")
            .account("xxx@qw.com")
            .password("asdqwer")
            .build();
    System.out.println(userInfo);
}
UserInfo{name='小明', zhName='夏明', account='xxx@qw.com', password='asdqwer'}

Original: https://www.cnblogs.com/eternality/p/16649775.html
Author: 逆梦
Title: java Builder模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620262/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring Cloud Stream 简介

    一、概述 Spring Cloud Stream 是一个建立在 Spring Boot 和 Spring Integration 之上的框架,有助于创建事件驱动或消息驱动的微服务。…

    Java 2023年5月30日
    072
  • 分享两个实用的shell脚本

    各位,早上好啊~ 发现许久没有分享过技术文章了,今天分享两个部署项目时候比较实用的shell脚本 一键部署shell脚本 由于个人部署,会习惯把jar放到lib目录下面,如果你没有…

    Java 2023年6月13日
    084
  • Javaweb面试

    一:cookie和session的区别?1.session和cookie都是会话跟踪技术2.session是保存在服务器端的技术,而cookie是保存在客户端的技术3.cookie…

    Java 2023年6月5日
    092
  • JVM中的堆

    堆 内存结构 堆的核心概念 《java虚拟机规范》中对java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。 一个JVM实例只存在一个堆内存(就是new 出来一个对象…

    Java 2023年6月13日
    072
  • Android连载40-ITelecomService详解

    一、拨号流程总结 DialpadFragment提供用户拨号的交互界面 CallIntentBuilder创建拨号请求的intent对象 二、ITelecomService接收拨号…

    Java 2023年6月13日
    0121
  • 通俗易懂的了解String中的intern方法

    首先,先看一下intern 方法(JDK1.8 )的官方文档: 全是英文,阅读起来有点困难怎么办?没关系,博主对此做了翻译: 返回字符串对象的规范表示形式。 最初为空的字符串池由类…

    Java 2023年6月16日
    073
  • rocketmq有序消息

    RocketMQ提供的顺序消费消息实现是使用的FIFO 先进先出算法 Producer消息发送 public class Producer { public static void…

    Java 2023年6月16日
    067
  • 企业微信第三方应用(三)基于springboot开发(获取Ticket,auth_code)

    一、构建spring boot项目1、新建项目新建一个模块(module):enterprise-wechat新建一个子模块(module):wechat目录结构如下: 结构描述:…

    Java 2023年6月7日
    081
  • java https post请求并忽略证书,参数放在body中

    1 新建java类,作用是绕过证书用 java;gutter:true; package cn.smartercampus.core.util; import java.secur…

    Java 2023年5月29日
    067
  • 显示listview的行号

    想用的时候,总忘记了怎么拼,做个记录,下次该不会忘记了. Original: https://www.cnblogs.com/Blackie/archive/2008/08/02/…

    Java 2023年6月14日
    081
  • 图解设计模式:身份认证场景的应用

    文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info 今天和大家聊一聊,如何合理的将多种设计模式放到同一个业务场景中 业务背景 最近接到一个认…

    Java 2023年6月14日
    0105
  • InnoDB学习(三)之BinLog

    BinLog又称为二进制日志,是MySQL服务层的数据日志,MySQL所有的存储引擎都支持BinLog。BinLog记录了MySQL中的数据更新和可能导致数据更新的事件,可以用于主…

    Java 2023年6月8日
    096
  • linux 映射windows 下的共享文件夹

    linux 映射windows 下的共享文件夹 本文讯】2021年4月27日 在对接第三方系统,进行数据采集的时候,对方给了我们一个文件夹,里面全是txt文件,这个时候就要想办法获…

    Java 2023年6月16日
    079
  • Spring RestTemplate用法

    RestTemplate简介 RestTemplate对HTTP请求进行了封装,进行请求的时候可以保留cookie,在下次请求的时候使用; postForEntity与postFo…

    Java 2023年5月30日
    080
  • day03_1_idea教程

    idea使用教程 一、idea相关概念介绍 1.1 IDE概念介绍 集成开发环境(IDE,Integrated Development Environment)是用于提供程序开发环…

    Java 2023年6月8日
    065
  • Java基础 while 简单示例

    JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code packag…

    Java 2023年5月29日
    0105
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球