11
Jul

Factory design pattern

As per Gang of Four, Factory design pattern define an interface or abstract class for creating an object but let the subclasses decide which class to instantiate. In other words, subclasses are responsible to create the instance of the class.

Steps to implement Factory design pattern

Step 1:

package FactoryDesignPatternWithInterface;

public interface Plan {
public double rate=0;
public void calculateBill(int units);
}

package FactoryDesignPatternWithInterface;

Step 2:

public class DomesticPlan implements Plan {
private double rate=99;


public double getRate() {
    return rate;
}

@Override
public void calculateBill(int units) {
    System.out.println(units*rate);

}
}

Step 3: Similarly implement other Plans

public class CommercialPlan implements Plan {
private double rate = 100;

public double getRate() {
    return rate;
}

@Override
public void calculateBill(int units) {
    System.out.println(units * rate);

}
}

Step 4: Create a Plan Factory

public class PlanFactory {
public Plan getPlanInstance(String planName) {
    if (planName.equalsIgnoreCase("commercialplan")) {
        return new CommercialPlan();
    } else if (planName.equalsIgnoreCase("domesticplan")) {
        return new DomesticPlan();
    }
    return null;
}
}

Step 5: Create an executor

public class Executor {
public static void main(String[] args) {

    PlanFactory obj = new PlanFactory();

    Plan objPlan = obj.getPlanInstance("DomesticPlan");

    objPlan.calculateBill(10);

}
}