カテゴリを表すモデルはツリー(目に見えないルートノード、「開始」など)である可能性があります。各カテゴリには、1つの親カテゴリと1つまたは複数の子カテゴリがあります。
次に、製品について、その製品にカテゴリのリストを追加します。ある種の商品を異なるカテゴリに掲載することをいつか考えるかもしれないので、これは非常に柔軟です。カテゴリクラスの
非常に基本的なモデル:そこは作ることができる選択肢の数がありますが、私は彼らのカテゴリを知って
class Product
{
private Category category;
// ...
}
class Category
{
private Category parent;
private String name;
public Category getParent() { return parent; }
public boolean isTopLevelCategory() { return parent == null }
public String getName() { return name; }
public String getFullName() {
if(isTopLevelCategory())
return name;
else
return parent.getFullName() + " -> " + name;
}
// ....
}
製品のようなものを持っているでしょう
public class Category {
private List<Category> children = new ArrayList<Category>();
private Category parent;
private String name;
// private constructor
private Category(Category parent, String name) {
this.parent = parent;
this.name = name;
}
// adds a category to this category
public Category addCategory(String name) {
Category child = new Category(this, name);
children.add(child);
return child;
}
// creates and returns a new categories tree
public static Category createCategories() {
return new Category(null, "root");
}
}
これは、私が心に留めていたものとよく似ていますが、コードではかなり落ち着くことはできませんでした。初心者の方には、このアプローチをお勧めします:-)あなたの答えをありがとう! – Daniel