声明和实现两个java类的最佳方式是什么?

声明和实现两个java类的最佳方式是什么?,java,android,sqlite,Java,Android,Sqlite,我有两个类,一个叫做修饰符,另一个叫做选项。修饰符有一个id、名称和一组与其关联的选项。而期权(或每个期权)都有名称和价格。每个选项仅与一个修改器关联。考虑到它们之间的关系,编写这些类的最佳方式是什么。在我的应用程序中,用户必须输入修改器的名称,然后他们必须输入每个选项的名称和价格。每个修改器可以根据需要具有任意多个选项。下面是这些类以及我目前使用它们的方式:用户必须输入修改器的名称,然后他们必须输入每个选项的名称和价格。每个修改器可以根据需要具有任意多个选项。以下是这些课程以及我目前如何使用它

我有两个类,一个叫做修饰符,另一个叫做选项。修饰符有一个id、名称和一组与其关联的选项。而期权(或每个期权)都有名称和价格。每个选项仅与一个修改器关联。考虑到它们之间的关系,编写这些类的最佳方式是什么。在我的应用程序中,用户必须输入修改器的名称,然后他们必须输入每个选项的名称和价格。每个修改器可以根据需要具有任意多个选项。下面是这些类以及我目前使用它们的方式:用户必须输入修改器的名称,然后他们必须输入每个选项的名称和价格。每个修改器可以根据需要具有任意多个选项。以下是这些课程以及我目前如何使用它们:

public class Modifier {
    int id;
    String name;
    Options [] options;

    public Modifier() {
    }

    public Modifier(String name, Options[] options) {
        this.name = name;
        this.options = options;
    }

    public Modifier(int id, String name, Options[] options) {
        this.id = id;
        this.name = name;
        this.options = options;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Options[] getOptions() {
        return options;
    }

    public void setOptions(Options[] options) {
        this.options = options;
    }
}
我目前正在将选项组添加为数组。这是选项类

public class Options {
    int id;
    String name;

    public Options() {
    }

    public Options(String name, long price) {
        this.name = name;
        this.price = price;
    }

    public Options(int id, String name, long price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    long price;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public long getPrice() {
        return price;
    }

    public void setPrice(long price) {
        this.price = price;
    }
}

And in my main:
 Options sausage = new Options("sausage",23);
        Options olives = new Options("olives", 24);
        Options bacon = new Options("bacon", 25);

        Options [] toppings = {sausage, olives, bacon};

        Modifier pizza_toppings = new Modifier(1, "Pizza toppings",toppings);

我计划使用SQLIte数据库,因此我需要找到一种有效的方法来实现这一点。

您可以向保存修改器id的Options类添加一个字段,然后使用SQLIte创建两个表,一个用于修改器,一个用于选项,当您从中检索数据时,您可以使用外键来构建对象。无论您的类现在看起来如何,您都可以在选项表中保存修饰符ID,反之亦然,如下所示:

修改器表[modifierId,name]-选项表[optionId,name,modifierId]


您可以向保存修改器id的Options类添加一个字段,然后使用sqlite创建两个表,一个用于修改器,一个用于选项,当您从中检索数据时,您可以使用外键构建对象。无论您的类现在看起来如何,您都可以在选项表中保存修饰符ID,反之亦然:修饰符表[modifierId,name]-选项表[optionId-name-modifierId]问题是修饰符和ID是同时创建的,我如何在那个实例中获得修饰符的id。没有id就不能创建修饰符,对吗?我看不出有任何问题,您可以在构造函数上分配id,然后为选项列表中的每个选项分配相同的修饰符id。id是自动创建的。其自动增量用户同时创建修改器及其选项。修改器ID也是自动递增的。