From 3470b2aec17cd58524fa030960629933e62b8f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cidpeng=E2=80=9D?= <630606938@qq.com> Date: Mon, 23 Aug 2021 17:42:12 +0800 Subject: [PATCH] builder --- .../hcsp/encapsulation/UserBuilder.java | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/hcsp/encapsulation/UserBuilder.java b/src/main/java/com/github/hcsp/encapsulation/UserBuilder.java index e3d4a8c..c7fdbec 100644 --- a/src/main/java/com/github/hcsp/encapsulation/UserBuilder.java +++ b/src/main/java/com/github/hcsp/encapsulation/UserBuilder.java @@ -1,6 +1,39 @@ package com.github.hcsp.encapsulation; -public class UserBuilder { - // 请在这里使用builder模式建造User对象 - // 所需的接口请参阅UserBuilderTest测试类 +public final class UserBuilder { + private String firstName; + private String lastName; + private String phoneNumber; + private String address; + + private UserBuilder() { + } + + public static UserBuilder anUser() { + return new UserBuilder(); + } + + public UserBuilder withFirstName(String firstName) { + this.firstName = firstName; + return this; + } + + public UserBuilder withLastName(String lastName) { + this.lastName = lastName; + return this; + } + + public UserBuilder withPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + return this; + } + + public UserBuilder withAddress(String address) { + this.address = address; + return this; + } + + public User build() { + return new User(firstName, lastName, phoneNumber, address); + } }