2017-02-01 1 views
-2

У меня есть два класса, один из которых называется Модификаторы, а другой называется Опции. Модификаторы имеют идентификатор, имя и группу связанных с ним групп. Хотя параметры (или каждый вариант) имеют имя и цену. Каждый параметр связан только с одним модификатором. Каков наилучший способ написания этих классов, чтобы учесть их отношения. В моем приложении пользователь должен ввести имя Модификатора, затем они должны ввести имя и цену каждого параметра. Каждый модификатор может иметь как можно больше параметров. Вот классы и то, как я их сейчас использую: пользователь должен ввести имя модификатора, затем они должны ввести имя и цену каждого параметра. Каждый модификатор может иметь как можно больше параметров. Ниже приведены классы и как я их использую:Каков наилучший способ объявления и реализации двух классов Java?

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; 
    } 
} 

В настоящее время я добавляю группу параметров в виде массива. Вот класс 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, поэтому мне нужно найти эффективный способ сделать это.

+0

вы можете добавить одно поле в класс параметров, который сохранит идентификатор-модификатор, а затем с помощью sqlite вы создадите две таблицы для модификаторов и одну для параметров, а когда вы извлечете из нее данные, вы используете ключ foriegn для создания своего объекта. кто бы ни выглядел в настоящее время, вы можете просто сохранить модификаторы ids в таблице опций и наоборот: таблица модификаторов [modifierId, name] - таблица опций [optionId - name - modifierId] –

+0

Проблема в том, что модификатор и ID создаются одновременно, как я могу получить идентификатор модификатора в этом экземпляре. –

+0

Вы не создаете модификатор без id? Я не вижу никакой проблемы, вы можете назначить идентификатор на конструкторе, затем назначить одинаковый идентификатор для id модификатора для каждой опции в списке опций. –

ответ

0

Вы можете добавить одно поле в класс параметров, который сохранит идентификатор-модификатор, а затем с помощью sqlite вы создадите две таблицы для модификаторов и одну для параметров, а когда вы извлечете из нее данные, вы используете внешний ключ для создания своего объекта. кто ваши классы теперь выглядит хорошо, вы можете просто сохранить модификаторы идентификаторов в таблице параметров и наоборот, как это:

модификатор таблицы [modifierId, имя] - таблица параметров [optionId, имя, modifierId]

+0

пользователь одновременно создает как модификатор, так и его параметры. Также модификаторы I.Ds автоматически увеличиваются. –