Builder pattern (basic)

Builder pattern (basic)

Hard Java OOP Basics 17 views
Explanation Complexity

Problem Statement

Task: implement a Builder for User with optional fields id and age.

Input Format

Mandatory field: name
Optional fields: id, age

Output Format

Created User object with provided fields

Example

name = "Aman"
age = 25
User created with name=Aman, age=25

Constraints

• name is required

• id and age are optional

• Use Builder pattern

Concept Explanation

Builder pattern is used when:
Some fields are optional.
It helps create objects step by step.
Object becomes immutable after creation.

Step-by-Step Explanation

1.Create class User.

2.Make fields private (name, id, age).

3.Make constructor private.

4.Create static inner class Builder.

5.Builder must require name in its constructor.

6.Provide setter-style methods in Builder for optional fields (id(), age()).

7.Each setter returns Builder object (method chaining).

8.Create build() method in Builder.

9.build() creates and returns final User object.

10.After build, object fields cannot be modified.

Concept Explanation

Builder pattern is used when:
Some fields are optional.
It helps create objects step by step.
Object becomes immutable after creation.

Step-by-Step Explanation

1.Create class User.

2.Make fields private (name, id, age).

3.Make constructor private.

4.Create static inner class Builder.

5.Builder must require name in its constructor.

6.Provide setter-style methods in Builder for optional fields (id(), age()).

7.Each setter returns Builder object (method chaining).

8.Create build() method in Builder.

9.build() creates and returns final User object.

10.After build, object fields cannot be modified.

Input / Output Format

Input Format
Mandatory field: name
Optional fields: id, age
Output Format
Created User object with provided fields
Constraints
• name is required

• id and age are optional

• Use Builder pattern

Examples

Input:
name = "Aman" age = 25
Output:
User created with name=Aman, age=25

Example Solution (Public)

Java
static class User{final int id;final int age;private User(int id,int age){this.id=id;this.age=age;}static class Builder{private int id;private int age;Builder id(int v){id=v;return this;}Builder age(int v){age=v;return this;}User build(){return new User(id,age);}}}

Official Solution Code

static class User{final int id;final int age;private User(int id,int age){this.id=id;this.age=age;}static class Builder{private int id;private int age;Builder id(int v){id=v;return this;}Builder age(int v){age=v;return this;}User build(){return new User(id,age);}}}
Please login to submit solutions.
Editor
Output

                                        
Please login to submit solutions.