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

时间:2017-02-01 19:03:16

标签: java android sqlite

我有两个类,一个叫做Modifiers,另一个叫做Options。修饰符具有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 DB,所以我需要找到一种有效的方法。

1 个答案:

答案 0 :(得分:0)

你可以在Options类中添加一个保存修饰符id的字段,然后使用sqlite创建两个表,一个用于修饰符,一个用于选项,当你从中检索数据时,使用外键来构建对象。你的班级现在看起来很好,你可以只在选项表中保存修饰符ids,反之亦然:

  

修饰符表[modifierId,name] - 选项表[optionId,name,modifierId]