Saturday, February 12, 2022

Factory design pattern

Task can be done by multiple objects(a group of objects) and specific object can be decided at runtime  ;

Let's see an example.

//parent class

public interface Phone{

void makeCall();

}

//subclass 1

public class AndroidPhone implements Phone {

@Override

public void makeCall() {

System.out.println("calling using android phone");

}

}

//subclass 2

public class Iphone implements Phone {

@Override

public void makeCall() {

System.out.println("Calling using iphone.");

}

}

//subclass 3

public class Windows implements Phone {

@Override

public void makeCall() {

System.out.println("calling using windows phone.");

}

}

//factory

public PhoneFactory{

public Phone getPhone(String phoneName){

if(phoneName.equals("Android")){

return new AndroidPhone();

}

else if(phoneName.equals("lphone")){

return new Lphone();

}

else{

return new Windows();

}

}

//MainClass

public static void main(String[] args){

PhoneFactory phoneFactory = new PhoneFactory();

Phone phone = phoneFactory.getPhone("Android");

phone.makeCall();

}


No comments:

Post a Comment

Abstract factory pattern

When single task can be done by multiple groups/family of objects and decision is taken at the runtime.