AbstractFactory 红太狼 2022-08-06 02:06 78阅读 0赞 #### 抽象工厂设计模式 #### 设计一个格斗游戏,有初等级别和高难度级别。初等级别的地方士兵、怪兽和超级怪兽攻击力低下,高难度则相反,攻击力很强。要实现这个游戏,要完成两个目标:一个是敌人(有士兵、怪兽和超级怪兽),另一个是成批量的创建敌人(有士兵、怪兽和超级怪兽),那么抽象工厂设计模式正好满足需求。 #### 关于游戏中的 UML 图 #### ![Center][] #### 设计游戏类 #### class Soldier {}; class SillySoldier : public Soldier { }; class BadSoldier : public Soldier { }; class Monster {}; class SillyMonster : public Monster { }; class BadMonster : public Monster { }; class SuperMonster {}; class SillySuperMonster : public SuperMonster { }; class BadSuperMonster : public SuperMonster { }; class AbstractEnemyFactory { public: virtual Soldier* MakeSoldier() = 0; virtual Monster* MakeMonster() = 0; virtual SuperMonster* MakeSuperMonster() = 0; }; class EasyLevelEnemyFactory : public AbstractEnemyFactory { public: Soldier* MakeSoldier() { return new SillySoldier; } Monster* MakeMonster() { return new SillyMonster; } SuperMonster* MakeSuperMonster() { return new SuperMonster; } }; class DieHardLevelEnemyFactory : public AbstractEnemyFactory { public: Soldier* MakeSoldier() { return new BadSoldier; } Monster* MakeMonster() { return new BadMonster; } SuperMonster* MakeSuperMonster() { return new BadSuperMonster; } }; int main() { AbstractEnemyFactory *pEasyLevelEnemyFactory = new EasyLevelEnemyFactory; pEasyLevelEnemyFactory->MakeMonster(); AbstractEnemyFactory *pDieHardLevelEnemyFactory = new DieHardLevelEnemyFactory; pDieHardLevelEnemyFactory->MakeSoldier(); return 0; } #### “开放-封闭”原则 #### “开放-封闭”原则要求系统对扩展开放,对修改封闭。通过扩展达到增加其功能的目的。比如要增加新的一个敌人 BossMonster 类 ,只需在生产工厂AbstractEnemyFactory增加新的方法MakeBossMonster 即可,只要增加新的类,无需改动原来已有敌人的代码。 [Center]: /images/20220806/1d8b9ebd10954fef94dcf83f39495df5.png
相关 设计模式之生成实例_AbstractFactory模式_将关联零件组装成产品 前言 [博主github][github] [博主个人博客http://blog.healerjean.com][http_blog.healerjean.c... 拼搏现实的明天。/ 2024年04月17日 05:45/ 0 赞/ 67 阅读
相关 【设计模式】13.创建型模式-抽象工厂(AbstractFactory) 一、描述 提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。不同于工厂方法模式,工厂方法模式的工厂只能生产一种产品。 抽象工厂的角色分类: 1 今天药忘吃喽~/ 2023年10月05日 23:25/ 0 赞/ 73 阅读
相关 AbstractFactory 抽象工厂设计模式 设计一个格斗游戏,有初等级别和高难度级别。初等级别的地方士兵、怪兽和超级怪兽攻击力低下,高难度则相反,攻击力很强。要实现这个游戏,要完成两个目标:一个是 红太狼/ 2022年08月06日 02:06/ 0 赞/ 79 阅读
相关 python实现AbstractFactory模式 \-\-coding:utf-8-\- ''' 1,为创建一组(有多个类)相关或相互依赖的对象提供创建接口 ''' from abc import 亦凉/ 2022年03月22日 06:08/ 0 赞/ 112 阅读
相关 [创建型模式] AbstractFactory AbstractFactory.h // // AbstractFactory.h // AbstractFactory // / 骑猪看日落/ 2021年12月10日 13:47/ 0 赞/ 161 阅读
相关 设计模式--抽象工厂(AbstractFactory) 抽象工厂模式(AbstractFactory) 工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。 喜欢ヅ旅行/ 2021年09月30日 17:10/ 0 赞/ 285 阅读
还没有评论,来说两句吧...