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