package Puzzle; /** * abstract factory class for creating PuzzleTiles * * client code must subclass and implement makeTile * a PuzzleTileFactory object is passed to GUIs or Apps that * need to create tiles * * a concrete PuzzleTileFactory is best implemented as a singleton * */ abstract class PuzzleTileFactory { /** * @param label is the label associated with the returned Tile * @return PuzzleTile created by the factory * */ public abstract PuzzleTile makeTile(String label); }