首页 > 其他分享 >builder模式

builder模式

时间:2023-09-08 23:59:18浏览次数:36  
标签:name builder 模式 age Student public String

package study;


import lombok.Data;

@Data
public class Student  {
    Integer age;
    String name;
    String address ;
    public Student() {
    }

    public Student(Builder builder){
        this.name = builder.name;
    }

    public static  Builder builder() {
        return new Builder();
    }
    public static final class Builder{
        String name;
        Integer age;

        public Builder age (Integer age){
            this.age  = age;
            return this;
        }
        public Builder name (String name){
            if (name ==null){
                return this;
            }
            this.name  = name;
            return this;
        }

        public Student build(){

            return new Student(this);
        }
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                '}';
    }
}

  

package patterns.builder;

import study.Student;

public class Test {
    public static void main(String[] args) {
        Student empty = new Student(); //student1
        Student student =  Student.builder()
                .name(empty.getAddress())
                .age(18)
                .build();
        System.out.println("student = " + student);

    }
}

  

 

标签:name,builder,模式,age,Student,public,String
From: https://www.cnblogs.com/mljqqh/p/17688753.html

相关文章

  • 原型模式和深拷贝,浅拷贝
    原型模式案例引入克隆羊问题有一只羊,姓名为tom,年龄为1,颜色为白色,编写程序创建和tom羊属性完全相同的羊。传统方式解决代码实现publicclassSheep{privateStringname;privateintage;privateStringcolor;publicSheep(){}publicShe......
  • ES6 Module模块,在vsCode中已服务器模式运行HTML文件
    操作步骤如下:一、安装LiveServer插件二、点击扩展设置三、设置liveserver默认打开浏览器为“chrome”四、配置-工作区五、在HTML文件中,右键选择"openwithLiveServer" 输出结果 ......
  • 正则中常见的4种匹配模式
    所谓匹配模式,指的是正则中一些改变元字符匹配行为的方式,比如匹配时不区分英文字母大小写。常见的匹配模式有4种,分别是不区分大小写模式、点号通配模式、多行模式和注释模式。1、不区分大小写模式(Case-Insensitive)当我们把模式修饰符放在整个正则前面时,就表示整个正则表达式都是不......
  • 【设计模式】命令模式Command:在一次请求中封装多个参数
    (目录)命令模式使用频率不算太高。如果熟悉函数式编程的话,会发现命令模式完全没有使用的必要,甚至在业务开发的场景中也很少使用到。不过对于想要找到正确抽象的设计者来说,命令模式的设计思想却非常值得借鉴。命令和查询的区别:查询,获取一个不可变的结果;命令,改变状态,不一定获......
  • live555做流媒体服务器时解决rtp over udp模式下, 客户端没有发送teardown时直接关闭
    在我们使用live555作为RTSP服务器时,客户端在rtpoverudp模式下,rtsp客户端没有发送teardown而直接断开连接时需要等待65秒才回调关闭的问题。分析问题在RTSPClientConnection中没有保存相应的session值,所以在RTSPClientConnection断开时,并没有删除相应的RTSPClientSession;解......
  • 适配器模式:如何让不兼容的接口变得兼容
    在软件开发中,我们经常会遇到这样的情况:我们需要使用一个现有的类或者接口,但它与我们系统的目标接口不兼容,而我们又不能修改它。这时候,我们该怎么办呢?大多数情况下我们都可以使用适配器模式来解决这个问题,本文将从以下四个方面讲解适配器模式。简介优缺点应用场景Java代码示......
  • CH59X/CH58X/CH57X sleep模式下串口唤醒收发数据
    整体程序逻辑:下方的具体程序及使用是基于CH592进行的SLEEP模式睡眠唤醒是由协议栈管理的,还在睡眠时,无法接收到数据。已经通过使能HAL_SLEEP开启睡眠。如果需要在睡眠时实时接收串口传来的数据是不可行的,需要先将设备唤醒之后再进行串口数据的接收;将唤醒的条件设置为下降沿唤醒......
  • java设计模式,简单工厂和抽象工厂有什么区别?
    java设计模式,简单工厂和抽象工厂有什么区别?简单工厂模式:这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。它由三种角色组成:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工......
  • RTSP流媒体服务器EasyNVR安防视频平台:定制您的专属录像模式
    TSINGSEE青犀视频安防监控平台EasyNVR通过RTSP/Onvif流媒体协议接入设备,并提供多种格式的视频处理和分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等。EasyNVR在智慧安防等场景中提供实时监控直播、云端录像、云存储、录像检索与回放、告警等视频能力,满足安防监控和无人值守......
  • 设计模式-单例模式
    保证在整个软件系统中,对某个类只能存在一个对象实例。饿汉式(类加载时创建,没用到也创建)1、构造器私有化(防止new对象)。2、类内部创建私有的静态对象。3、用一个公共的getInstance()静态方法返回该对象。如Runtime类懒汉式(使用才创建)1、仍然使构造器私有化。2、类内部定义静......