Categories
Uncategorized

Builder Pattern

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();
		
		
		
		
	}

}

Leave a comment

Design a site like this with WordPress.com
Get started