我正在学习 Java 工厂方法,想知道如何实现所提供的示例

I'm learning about Java factory methods and want to know how to implement the example provided

我正在阅读 Cracking The Coding Interview。在面向对象设计部分,他们描述了工厂方法。他们举了一个例子,但是当我把它放到 eclipse 中时它失败了,因为 GameType 还没有被定义。我将如何实施此 class?

示例Java代码

public class CardGame {
    public static CardGame createCardGame(GameType type) {
        if (type == GameType.Poker) {
            return new PokerGame();
        } else if (type == GameType.BlackJack) {
            return new BlackJackGame();
        }
    }
}

GameType 看起来像枚举或 class 带有模拟枚举的东西,所以我会这样做。所以它会是这样的:

public enum GameType {
    Poker, BlackJack;
}

在你的例子中给出了类似的东西:

public class Main {

    public static void main(String[] args) {
        GameType type = GameType.Poker;
    }

}