From 528a136c78a73807b6ef573b86e18eac7db7ee2f Mon Sep 17 00:00:00 2001 From: Andy Date: Sun, 19 Mar 2023 10:40:42 +0800 Subject: [PATCH] done --- .../hcsp/encapsulation/UserBuilder.java | 38 ++++++++++++++++++- .../hcsp/encapsulation/UserBuilderTest.java | 12 +++--- 2 files changed, 42 insertions(+), 8 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..d9d1a81 100644 --- a/src/main/java/com/github/hcsp/encapsulation/UserBuilder.java +++ b/src/main/java/com/github/hcsp/encapsulation/UserBuilder.java @@ -1,6 +1,42 @@ package com.github.hcsp.encapsulation; -public class UserBuilder { +public final class UserBuilder { // 请在这里使用builder模式建造User对象 // 所需的接口请参阅UserBuilderTest测试类 + private String firstName; + private String lastName; + private String phoneNumber; + private String address; + + public UserBuilder() { + } + + public static UserBuilder aUser() { + 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); + } + } diff --git a/src/test/java/com/github/hcsp/encapsulation/UserBuilderTest.java b/src/test/java/com/github/hcsp/encapsulation/UserBuilderTest.java index bae72c9..4eeec50 100644 --- a/src/test/java/com/github/hcsp/encapsulation/UserBuilderTest.java +++ b/src/test/java/com/github/hcsp/encapsulation/UserBuilderTest.java @@ -6,13 +6,11 @@ public class UserBuilderTest { @Test public void canUseBuilderToCreateObjects() { - User user = - new UserBuilder() - .firstName("德华") - .lastName("刘") - .phoneNumber("我也不知道") - .address("可能在地球上吧") - .build(); + User user = new UserBuilder() + .withFirstName("德华") + .withLastName("刘") + .withPhoneNumber("我也不知道") + .withAddress("可能在地球上吧").build(); Assertions.assertEquals("德华", user.getFirstName()); Assertions.assertEquals("刘", user.getLastName()); Assertions.assertEquals("我也不知道", user.getPhoneNumber());