0% found this document useful (0 votes)
43 views27 pages

Builder Design Pattern

Uploaded by

Rr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views27 pages

Builder Design Pattern

Uploaded by

Rr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

Builder Design

Pattern
Builder Pattern says that "construct a complex object from simple
objects using step-by-step approach"
It is mostly used when object can't be created in single step like in the
de-serialization of a complex object.
1- Create Packing interface

public interface Packing {


public String pack();
public int price();
}
2- Create 2 abstract classes CD and Company

public abstract class CD implements Packing{


public abstract String pack();
}
public abstract class Company extends CD{
public abstract int price();
}
3- Create 2 implementation classes of Company: Sony and Samsung

public class Sony extends Company{


@Override
public int price(){
return 20;
}
@Override
public String pack(){
return "Sony CD";
}
}//End of the Sony class.
public class Samsung extends Company {
@Override
public int price(){
return 15;
}
@Override
public String pack(){
return "Samsung CD";
}
4- Create the CDType class:
import java.util.ArrayList;
import java.util.List;
public class CDType {
private List<Packing> items=new ArrayList<Packing>();
public void addItem(Packing packs) {
items.add(packs);
}
public void getCost(){
for (Packing packs : items) {
packs.price();
}
}
public void showItems(){
for (Packing packing : items){
System.out.print("CD name : "+packing.pack());
System.out.println(", Price : "+packing.price());
}
}
}//End of the CDType class.
5- Create the CDBuilder class

public class CDBuilder {


public CDType buildSonyCD(){
CDType cds=new CDType();
cds.addItem(new Sony());
return cds;
}
public CDType buildSamsungCD(){
CDType cds=new CDType();
cds.addItem(new Samsung());
return cds;
}
}// End of the CDBuilder class.
6- Create the BuilderDemo class

public class BuilderDemo{


public static void main(String args[]){
CDBuilder cdBuilder=new CDBuilder();
CDType cdType1=cdBuilder.buildSonyCD();
cdType1.showItems();

CDType cdType2=cdBuilder.buildSamsungCD();
cdType2.showItems();
}
}
Output:

CD name : Sony CD, Price : 20


CD name : Samsung CD, Price : 15
1- Create Packing interface

public interface Packing {


public String pack();
}
2- Create 2 abstract classes CD and Company

public interface Food{


public String name();
public Packing packing();
public float price();
}
public class Box implements Packing{
@override
public String pack (){
return “Box”;

}
}
3- Create 2 implementation classes of Company: Sony and Samsung

public class Can implements Packing{


@override
public String pack (){
return “Can”;
public abstract class Pizza implements Food {
@Override
public abstract float price();

@Override
public String packing(){
return new Box();
}
}
public abstract class Drink implements Food {
@Override
public abstract float price();

@Override
public String packing(){
return new Can();
}
}
public class VegPizza extends Pizza (){

@Override
public String name(){
return “Veg Pizza”;
}

@Override
public float price(){
return 100;
}
}
public class NonVegPizza extends Pizza (){

@Override
public String name(){
return “Non Veg Pizza”;
}

@Override
public float price(){
return 150;
}
}
public class Juice extends Drink (){

@Override
public String name(){
return “Fruit Juice ”;
}

@Override
public float price(){
return 50;
}
}
public class Cola extends Drink (){

@Override
public String name(){
return “Cola”;
}

@Override
public float price(){
return 75;
}
}
import java.util.ArrayList;

import java.util.List;
public class Order {
private List<Food> order=new ArrayList< Food >();
public void add(Food food) {
order.add(food);
}
public float getTotalPrice(){
float price =0;
for (Foot food: order)
price+= food.price();
return price;
}
public void printOrder(){
int i =1;
for (Food food: order){
System.out.print(i+“. "+ food.name+”, Rs ”+food.price+”. ”());
System.out.println("packing in: ”food.packing().pack());
i++;
}
}
}
public class OrderBuilder {
public Order buildorder (int pizzaChoice, int drinkChoice){
Order order=new Order();
if (pizzaChoice == 1)
Order.add(new VegPizza());
else if (pizzaChoice == 2)
Order.add(new NonVegPizza());
else System.out.println(“Sorry This Pizza Not Found ”)

if (drinkChoice == 1)
Order.add(new Juice());
else if (pizzaChoice == 2)
Order.add(newCola());
else System.out.println(“Sorry This Drink Not Found ”)
}
}
Import java.util.*;
public class BuilderDemo{
public static void main(String args[]){
Scanner input=new Scanner(System.in);
int pizzaChoice, drinkChoice = 0;
System.out.println(“ \n Choose a pizza: ”);
System.out.println(“1. Vega Pizza.”);
System.out.println(“2. Non Veg Pizza. ”);
System.out.println(“ \n Enter Your Choice : ”);
pizzaChoice=input.nextInt();
System.out.println(“ \n Choose a Drink: ”);
System.out.println(“ 1. Juice.”);
System.out.println(“ 2.Cola. ”);
System.out.println(“ \n Enter Your Choice : ”);
drinkChoice=input.nextInt();

OrderBuilder orderBuilder=new OrderBuilder();


Order order=new OrderBuilder.buildOrder(pizzaChoice,
drinkChoice);

System.out.println(“ \n Your Order is : ”);

Order.printOrder();
System.out.println(“ \n Your Total is : ”+ order.getTotalPrice());

You might also like