Builder

Report a typo

The given classes and interface are components of the Builder pattern.

GeekDirector creates geek-admin using the GeekBuilder class.

Implement the GeekBuilder method to compile the program and output the created geek.

Please do not change the provided code of the classes.

Sample Input 1:

Garry

Sample Output 1:

Geek Garry created.
Type : Admin
Languages : [Perl, PowerShell]
Experience : 10 years
Write a program in Java 17
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
* ConcreteComponent - Geek.
**/
class Geek {

private String type;
private List<String> languages;
private int experience;

public Geek(String type, List<String> languages, int experience) {
this.type = type;
this.languages = languages;
this.experience = experience;
}

@Override
public String toString() {
return "Type : " + type + "\n" + "Languages : " + languages + "\n" + "Experience : " + experience + " years";
}

}

/**
* Builder interface describe step of object creation.
**/
interface Builder {
void setType(String type);

void setLanguages(List<String> languages);

void setExperience(int experience);
}

/**
* Concrete Builder build Geek component.
**/
class GeekBuilder implements Builder {

private String type;
private List<String> languages;
private int experience;

@Override
public void setType(String type) {
this.type = type;
}

@Override
public void setLanguages(List<String> languages) {
this.languages = languages;
}

@Override
public void setExperience(int experience) {
this.experience = experience;
}

public Geek getResult() {
// write your code here ...
}
}

/**
* Builder Director.
*/
class GeekDirector {
public void buildAdmin(Builder builder) {
builder.setType("Admin");
ArrayList<String> languages = new ArrayList<>();
languages.add("Perl");
languages.add("PowerShell");
builder.setLanguages(languages);
builder.setExperience(10);
}
}

class Main {
public static void main(String[] args) {
final Scanner scanner = new Scanner(System.in);
final String geekName = scanner.nextLine();
scanner.close();
System.out.println("Geek " + geekName + " created.");
GeekDirector director = new GeekDirector();
GeekBuilder builder = new GeekBuilder();
director.buildAdmin(builder);
Geek geek = builder.getResult();
System.out.println(geek);
}
}
___

Create a free account to access the full topic