【发布时间】:2018-04-20 13:46:49
【问题描述】:
我有一个必须实现 Player 和 Mode 的游戏项目。
Player 类有两个子类HumanPlayer 和BotPlayer,Mode 类有两种模式:简单模式和困难模式。
这是我的类图:
人类玩家和机器人将具有“初始化武器”功能。对于简单模式,人类玩家将拥有各种武器,而机器人玩家将只有有限数量的武器。那么如果我像上图那样实现桥接模式,我怎么知道在Easy模式下是哪个抽象(玩家或机器人)来实现“初始化武器”功能?
【问题讨论】:
-
我认为您正在寻找
instanceof运算符。 (See here)。因此,您可以编写如下所示的 if 语句:if(player instanceof HumanPlayer){//deal with easy/hard mode initialization} -
@FrancisBartkowiak
instanceofbreaks the Open/Close principle.
标签: java