Factory Method Pattern

A pattern that relies on inheritance in which a method creates objects returning common parent class.

Contents

Example of Uses

  • Parsing by different file types (txt, doc, wpd, rtf, etc.)
  • Modes of a game

Intent

  • reduce code duplication for complex processes upon object creation

Implementation

Template method

public class Game {
  public Game() {
    this.createMonster(Math.floor(10.0 * this.getHpRatio()));
  }
  protected float getHpRatio() { return 50; }
}
public class HardMode extends Game {
  @Override
  protected float getHpRatio() { return 1.25; }
}
public class EasyMode extends Game {
  @Override
  protected float getHpRatio() { return 0.5; }
}

Interfaces

public interface Product {
  public String getName();
}
public interface ProductFactory {
  public Product makeProduct();
}
public class Shoe implements Product {
  @Override
  public String getName() { return "Nerky Flying Jadens"; }
}
public class ShoeFactory implements ProductFactory {
  @Override
  public Product makeProduct() {
    return new Show();
  }
}
public class Test {
  public static void main(String[] args) {
    ProductFactory factory = new ShoeFactory();
    Product shoe = factory.makeProduct();
    System.out.println(shoe.getName());
  }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.