意图:
AbstractFactory在Factory的基础上进行了进一步的拓展,使得AbstractFactory类也有继承其的子类ConcreteFactory。在此基础上可以创建更多不同类型的Product。
动机:
在游戏中,我们会有很多不同类型的怪物。为了使玩家在游戏的进行中获得更多的乐趣,我们希望将怪物的难度分为普通,精英,噩梦三个级别。通过使用AbstractFactory我们可以创建三个继承于AbstractFactory的子类,这些子类可以对相同的怪物创建不同的难度。这样当我们希望增加游戏难度时,我们只需要替换相应的Factory子类即可。