CREATIONAL PATTERN
As the name suggests, builder pattern is about encapsulating logic for building of complex composite object by composing small, simple objects. Sometimes, every real-world entity cannot be directly created as Class. For example Lunchset.
Item.java
public interface Item {
public String getName();
public String getCost();
}
Cola.java
public class Cola implements Item {
public Cola() {
// TODO Auto-generated constructor stub
}
@Override
public String getName() {
// TODO Auto-generated method stub
return "Coca Cola";
}
@Override
public String getCost() {
// TODO Auto-generated method stub
return "20 INR";
}
}
Sprite.java
public class Sprite implements Item {
public Sprite() {
// TODO Auto-generated constructor stub
}
@Override
public String getName() {
// TODO Auto-generated method stub
return "Sprite";
}
@Override
public String getCost() {
// TODO Auto-generated method stub
return "30 INR";
}
}
ChickenBurger.java
public class ChickenBurger implements Item {
public ChickenBurger() {
// TODO Auto-generated constructor stub
}
@Override
public String getName() {
// TODO Auto-generated method stub
return "Chicken Burger";
}
@Override
public String getCost() {
// TODO Auto-generated method stub
return "50 INR";
}
}
VegBurger.java
public class VegBurger implements Item {
public VegBurger() {
// TODO Auto-generated constructor stub
}
@Override
public String getName() {
// TODO Auto-generated method stub
return "Veg Burger";
}
@Override
public String getCost() {
// TODO Auto-generated method stub
return "40 INR";
}
}
LunchSet.java
import java.util.ArrayList;
import java.util.Iterator;
public class LunchSet {
ArrayList items ;
public LunchSet() {
// TODO Auto-generated constructor stub
items = new ArrayList();
}
public void printBills(){
if(items==null)
{
System.out.println("Pls make order, set is empty");
}
Iterator itr = items.iterator();
Item item;
while(itr.hasNext()){
item = (Item)itr.next();
System.out.println(item.getName() + ", cost :" + item.getCost());
}
}
public void addItem(Item item){
items.add(item);
return;
}
}
BuilderPatternDemo.java
public class BuilderPatternDemo {
public BuilderPatternDemo() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//I want Chicken burger and Coke
LunchSet set1 = new LunchSet();
set1.addItem(new ChickenBurger());
set1.addItem(new Cola());
System.out.println("Here is your set, pls pay bills as below");
set1.printBills();
//I want Veg Burger and Sprite
LunchSet set2 = new LunchSet();
set2.addItem(new VegBurger());
set2.addItem(new Sprite());
System.out.println("Here is your set, pls pay bills as below");
set2.printBills();
}
}
