是否使用工厂方法?

时间:2015-10-11 10:55:17

标签: c# .net design-patterns aggregate factory-pattern

我写了一个简单的游戏(基于回合,如Tic Tac Toe)。架构非常简单,我有Game类,它是聚合根,它有List个玩家和Board个对象。 BoardField个对象 - 典型的聚合模式(我认为......)。

现在,这款游戏的类型可能很少:单人游戏,两个玩家(在单个设备上),通过蓝牙,通过wifi或在线(与陌生人)。我有两种方法来创建Game对象。像这样,在构造函数中传递类型:

    public Game(GameType type)
    {
        this.Type = type;
        Players = new List<Player>();

        ...
    }

添加新玩家/玩家时肯定存在差异。单人游戏的情况不同,两个玩家不同,网络游戏不同。因此,在这种方法中,类型必须switch/case

或,第二种方式:

创建派生类,例如SinglePlayerGame : Game等...使用工厂方法GameAPI创建类CreateGame类。

所以,就在这一点上,我意识到我不知道何时使用第一种方式(通过构造函数然后使用switch/case)以及何时使用工厂方法类..

提前感谢您澄清这一点!

0 个答案:

没有答案