Хороший способ поддерживать список меню выбора на нескольких уровнях в J2ME
Вопрос
Мне нужен хороший способ поддерживать данные на уровне нескольких форм для выбора меню.Так, например, если у меня есть A и B, у каждого может быть 1 2 3 итак A A1 A2 A3 B B1 B2 B3
И это может продолжаться долго, так что у меня могло бы быть A -> A1 -> A1.1 -> A1.1.1 -....У меня есть следующий класс, работает нормально, но я подозреваю, что у нас могло бы быть лучше.
Мне просто нужно выполнить выбор в виде дерева выбора, подобного виджету, но каждый уровень выбора представлен в другой форме (в J2ME).
import java.util.Vector;
public class Tag {
private String tag;
private Vector childTags;
private Tag parent;
Tag(String tag, Vector childtag)
{
this.tag = tag;
this.childTags= childTags;
}
public void setChildTags(Vector childTags) {
this.childTags = childTags;
}
public Vector getChildTags() {
return this.childTags;
}
public String getTag() {
return this.tag;
}
public String toString(int depth)
{
String a ="";
if(depth==0)
{
a = a + this.getTag();
}
if(this.getChildTags()!= null)
{
for(int k=0;k <this.getChildTags().capacity(); k++)
{
for (int i=0; i<depth; i++ ) {
a = a + ("-");
}
a = a+ ( ((Tag)this.getChildTags().elementAt(k)).toString(depth++));
} }
return a;
}
}
Нет правильного решения
Другие советы
Вы можете использовать некоторые классы для представления ваших команд меню.Думайте о 1, 2, 3 и A, B, C как о командах, а о комбинациях - так, как вы их составляете, поэтому, применяя некоторые шаблоны здесь, вы можете использовать Command ( http://en.wikipedia.org/wiki/Command_pattern ) и Композитный ( http://en.wikipedia.org/wiki/Composite_pattern ).Заставьте их работать вместе, и использовать и поддерживать его будет намного проще, чем таинственный и подверженный ошибкам "вектор дочерних тегов".