java - 如何在java项目中组织配置值
问题描述
假设我正在编写一个小型 RPG 游戏。我有几个 Enemy 类的实例。它们有共同的属性(它们都有一个名字、一定数量的生命/力量/敏捷/武器等),但所有这些值对于每个敌人都是不同的。我正在寻找一种适当的方式来启动这些实例。
我是编程和 Java 的新手,所以我正在寻找在我的项目中正确组织信息的最佳实践。
我的第一个想法是,在创建游戏实例时,在 Game 对象的构造函数中实例化所有出现的所需敌人,并将所有内容放在一个向量中。类似的东西Enemy e1 = new Enemy("goblin", 10, 14, 10, a_weapon, ...)
。但是如果有很多敌人,很多属性,这会变得非常乏味,而且很难维护,而且我觉得将它放在 Game 对象的构造函数中不是很“合乎逻辑”。
我刚刚发现了 XML 文件,它看起来很有希望。所以也许我可以把所有东西都放在一个 XML 文件中,然后在我的程序中解析它以提取数据并从中创建所有敌人。它可能看起来像
<Enemies>
<Enemy>
<Name>"Goblin"</Name>
<Strength>20</Strength>
<Agility>20</Agility>
<Life>20</Life>
<Weapon>
<Name>"Sword"</Name>
<Damage>3</Damage>
</Weapon>
<Enemy>
<Enemy>
...
</Enemy>
</Enemies>
我想我可以编写一个函数来解析 XML 文件,提取数据并自动创建敌人的向量,所以我只需要编辑 XML 文件来修改值。
但是,在深入研究此解决方案之前,我想问一下这是否是首选方法,如果不是,那么管理这种情况的最常见方法是什么。
解决方案
推荐阅读
- c# - 使用 C# 添加网络打印机
- java - 无法使用 aws lambda 函数将远程存储库(本地)克隆到 S3 存储桶
- function - exec() 命令在纯代码中工作,但不在方法内
- angular - 如何在 angular/drupal 项目中包含与 angular2-jsonapi 的关系
- android - 如何将 int[ ][ ] 转换为 ArrayList
- kotlin - 释放与项目相关的资源
- python - 简单的打印语句在两个 RPI 之一上给出 UnicodeEncodeError
- python - 使用 Airflow 中的另一个 dag 触发外部 dag
- scala - 为 kubernetes 部署构建 fat spark jars 和 bundles
- javascript - 如何获取动态 Angular 字段的控件名称?