Java – The factory pattern for the parent class and its subclasses

The factory pattern for the parent class and its subclasses… here is a solution to the problem.

The factory pattern for the parent class and its subclasses

I have 3 classes and they are subclasses of another:
Class C – > (subclass) – > Class B – > (subclass) – > Class A.

Each class is real, and I want to choose which class to instantiate by method.
Can I use factory methods and factory patterns to select classes to create?

Thank you.

Solution

Yes, the factory method is a viable approach in your context. I’ve provided a quick example of how to implement it.

import java.util.Scanner;

public class FactoryMethodExample
{
  public static void main(String[] args)
  {
    Scanner reader = new Scanner(System.in);
    System.out.println("Enter a letter A, B or C: ");
    String input = reader.nextLine();
    Factory factory = new ConcreteFactory();
    A myClass = factory.getClass(input.charAt(0));
    if(myClass != null)
    {
        myClass.print();
    }
    else
    {
        System.out.print("Wrong input");
    }
  }
}

class A
{
  public void print()
  {
    System.out.print("I'm class A");
  }
}

class B extends A
{
  @Override
  public void print()
  {
    System.out.print("I'm class B");
  }
}

class C extends B
{
  @Override
  public void print()
  {
    System.out.print("I'm class C");
  }
}

abstract class Factory
{
    public abstract A getClass(Character letter);
}

class ConcreteFactory extends Factory
{
    @Override
    public A getClass(Character letter)
    {
        if(letter.equals('A'))
        {
            return new A();
        } 
        else if(letter.equals('B'))
        {
            return new B();
        }
        else if(letter.equals('C'))
        {
            return new C();
        }
        return null;
    }
}

Related Problems and Solutions