在下愚鲁,看不懂工厂方法的意义,哪位给解释一下?
java编程思想上一个关于游戏的例子来说明工厂方法的意义:在相同的棋盘上下国际象棋和西洋跳棋,但我实在没看出有何意义:
// A Game framework using Factory Methods.import static net.mindview.util.Print.*;interface Game { boolean move(); }interface GameFactory { Game getGame(); }class Checkers implements Game { private int moves = 0; private static final int MOVES = 3; public boolean move() { print("Checkers move " + moves); return ++moves != MOVES; }}class CheckersFactory implements GameFactory { public Game getGame() { return new Checkers(); }} class Chess implements Game { private int moves = 0; private static final int MOVES = 4; public boolean move() { print("Chess move " + moves); return ++moves != MOVES; }}class ChessFactory implements GameFactory { public Game getGame() { return new Chess(); }} public class Games { public static void playGame(GameFactory factory) { Game s = factory.getGame(); while(s.move()) ; } public static void main(String[] args) { playGame(new CheckersFactory()); playGame(new ChessFactory()); }} /* Output:Checkers move 0Checkers move 1Checkers move 2Chess move 0Chess move 1Chess move 2Chess move 3*///:~public class Games { public static void playGame(Game factory) { Game s = factory; while(s.move()) ; } public static void main(String[] args) { playGame(new Checkers()); playGame(new Chess()); }} /* Output:Checkers move 0Checkers move 1Checkers move 2Chess move 0Chess move 1Chess move 2Chess move 3*///:~