package com.iluwatar; /** * * In Factory Method we have an interface (Blacksmith) with a method for * creating objects (manufactureWeapon). The concrete subclasses (OrcBlacksmith, * ElfBlacksmith) then override the method to produce objects of their liking. * */ public class App { public static void main(String[] args) { Blacksmith blacksmith; Weapon weapon; blacksmith = new OrcBlacksmith(); weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); System.out.println(weapon); weapon = blacksmith.manufactureWeapon(WeaponType.AXE); System.out.println(weapon); blacksmith = new ElfBlacksmith(); weapon = blacksmith.manufactureWeapon(WeaponType.SHORT_SWORD); System.out.println(weapon); weapon = blacksmith.manufactureWeapon(WeaponType.SPEAR); System.out.println(weapon); } }