【发布时间】:2017-02-20 19:38:00
【问题描述】:
我正在构建一个小型 RPG。一个角色有多种属性,例如:力量、魔法、射箭和防御。玩家也可以穿戴装备,例如头盔、躯干、腿、靴子、手套和武器。每件装备都有自己的统计数据。例如,银色躯干有 10 点防御。
当角色拥有 15 点防御力并且他穿着银色躯干时,他的防御力现在将是 25 点。无论如何,为了穿戴装备,需要生产。目前我用抽象工厂模式设计了它(见图)。
该设计有很多类,其中大多数基本没用,例如青铜头盔、银色躯干等等,因为它们只有一个实例类统计。
【问题讨论】:
-
专业类代表特定类型的设备有什么意义?我希望 all 实例例如boots 由单个类 Boots 表示。
-
你为什么要使用工厂?当我穿西装时,它只是一套西装。
-
如果要使用特定的
type字符串调用工厂,为什么还要使用工厂?抽象工厂的整个想法是,您实际上并不知道您正在创建的内容的类型或实现。
标签: java oop design-patterns uml abstract-factory