请注意:我不想在这里进行编码帮助,Programmers
原因是我在这里。我想提高我的程序计划/编写技能,而不仅仅是(对)我对Java的理解。
我正在根据此处针对LARP游戏列出的技能,试图找出如何制作具有任意类别系统的树。我先前的尝试对技能是否也是一类产品感到很失望。尝试对此进行编码很乱。画出我的树时,我注意到只有我的“叶子”才是技能,我将其他人标记为类别。
我所追求的是一种制作树的方法,该树尝试将模型和视图分开,并允许将任意类型的子节点(具有独立的编辑/渲染方式)添加到任意父节点。
注意:这里的所有东西都是作为技能购买的,即使看起来像是房产。最终用户会将其视为购买技能(他们在纸上atm上做的事情),因此应将其呈现在同一页面上。
树的解释:树是“出生的”,具有一组硬编码的最高级别类别(武器,身体和心理,医疗等)。由此,用户需要能够增加一项技能。最终,他们希望增加例如“单手剑专精” 技能(而非物品)。为此,理想情况下,请单击“添加”并Weapons
选中,然后One-handed
从出现在该子节点上的组合框节点中进行选择,然后再次单击“添加” ,然后在出现的该子节点上的文本字段中输入名称。然后再次单击添加以为该叶子添加/指定“级别”或“层”;首先是熟练程度,然后是专业化(例如)。
当然,如果您想购买其他技能,那是完全不同的途径。您可能不需要像使用武器示例那样在树下同一级别的组合框,也不需要其后的其他逻辑。这就是我难以理解的地方,更不用说编程了。如何制作一组类,而不指定将它们连接在一起的顺序,但是仍然使它们都适合。
用代码描述这种树的好的系统是什么?我见过的所有其他JTree示例都具有一些可预测的模式,而我的则没有。我不想在“文字”中编写全部代码,而在父级上应允许列出子节点的类型(组合框,文本字段等)的长列表。我应该使用抽象类吗?接口?
当我添加上面未列出的其他行为不同的技能时,如何使这类对象集群可扩展?
如果没有一个好的系统可以使用,那么是否有一个好的过程可以弄清楚该怎么做呢?
我脑海中的齿轮正在转动:
我总是需要:
- 检查父母
- 提供基于父项的选项
由于这种共性,我开始思考,我需要某种抽象/接口skill
类来定义/概述技能和类别的通用方法。我可以(希望)将规则和选项放入数据库中并从中读取。现在我想的问题是,在抽象或接口方法与如何实现该方法之间。