15.IGame游戏公司的故事

IGame游戏公司在开发ARPG游戏时,针对打怪功能展开讨论。实习生小李提出初步实现,使用角色和武器属性来确定攻击效果。然而,架构师小于指出设计违反了OCP原则,建议采用策略模式进行重构,以提高代码的可扩展性和遵循高内聚原则。
摘要由CSDN通过智能技术生成

1 讨论会

话说有一个叫IGame的游戏公司,正在开发一款ARPG游戏(动作&角色扮演类游戏,如魔兽世界、梦幻西游这一类的游戏)。一般这类游戏都有一个基本的功能,就是打怪(玩家攻击怪物,借此获得经验、虚拟货币和虚拟装备),并且根据玩家角色所装备的武器不同,攻击效果也不同。这天,IGame公司的开发小组正在开会对打怪功能中的某一个功能点如何实现进行讨论,他们面前的大屏幕上是这样一份需求描述的ppt:

各个开发人员,面对这份需求,展开了热烈的讨论,下面我们看看讨论会上都发生了什么。 

2 实习生小李的实现方式

在经过一番讨论后,项目组长Peter觉得有必要整理一下各方的意见,他首先询问小李的看法。小李是某学校计算机系大三学生,对游戏开发特别感兴趣,目前是IGame公司的一名实习生。经过短暂的思考,小李阐述了自己的意见:

“我认为,这个需求可以这么实现。HP当然是怪物的一个属性成员,而武器是角色的一个属性成员,类型可以使字符串,用于描述目前角色所装备的武器。角色类有一个攻击方法,以被攻击怪物为参数,当实施一次攻击时,攻击方法被调用,而这个方法首先判断当前角色装备了什么武器,然后据此对被攻击怪物的HP进行操作,以产生不同效果。”而在阐述完后,小李也飞快的在自己的电脑上写了一个Demo,来演示他的想法,Demo代码如下。

package com.wangxing.game.test1;
/**
 * 怪物类
 * @author Administrator
 *
 */
public class GuaiWu {
	//怪物名称
	private String guaiwu_name;
	//怪物生命值
	private int guaiwu_hp;
	public String getGuaiwu_name() {
		return guaiwu_name;
	}
	public void setGuaiwu_name(String guaiwu_name) {
		this.guaiwu_name = guaiwu_name;
	}
	public int getGuaiwu_hp() {
		return guaiwu_hp;
	}
	public void setGuaiwu_hp(int guaiwu_hp) {
		this.guaiwu_hp = guaiwu_hp;
	}
}

package com.wangxing.game.test1;
/**
 * 角色类
 * @author Administrator
 *
 */
public class JueSe {
	//武器变量
	private  
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值