Builder + Dependency Injection Integration
This program integrates Builder and Dependency Injection patterns.
Problem Statement
Write a Java program where User is built using Builder and injected into Client.
Source Code
| 1 | class User { |
| 2 | String name; int age; |
| 3 | private User(UserBuilder builder){ name=builder.name; age=builder.age; } |
| 4 | static class UserBuilder { |
| 5 | String name; int age; |
| 6 | UserBuilder setName(String n){ name=n; return this; } |
| 7 | UserBuilder setAge(int a){ age=a; return this; } |
| 8 | User build(){ return new User(this); } |
| 9 | } |
| 10 | } |
| 11 | class Client { |
| 12 | private User user; |
| 13 | Client(User u){ user=u; } |
| 14 | void show(){ System.out.println("Client has user: "+user.name+", Age: "+user.age); } |
| 15 | } |
| 16 | public class BuilderDI { |
| 17 | public static void main(String[] args) { |
| 18 | System.out.println("Eduinq Builder + DI"); |
| 19 | User u=new User.UserBuilder().setName("Arun").setAge(25).build(); |
| 20 | Client c=new Client(u); |
| 21 | c.show(); |
| 22 | } |
| 23 | } |
Program Output
Eduinq Builder + DI Client has user: Arun, Age: 25
Explanation
Builder constructs complex User object step by step. - Dependency injection passes User into Client via constructor. - This integration demonstrates combining design patterns for flexible, testable, and maintainable systems. Conclution: Shows integration of Builder and Dependency Injection patterns.