2017-02-01 5 views
-2

私はModifiersと呼ばれるものとOptionsと呼ばれるものがあります。修飾子には、id、name、およびそれに関連付けられたオプションのグループがあります。オプション(または各オプション)には名前と価格があります。各オプションは1つの修飾子にのみ関連付けられています。彼らの関係を考慮に入れてこれらのクラスを書く最善の方法は何ですか?私のアプリケーションでは、ユーザーはModifierの名前を入力しなければなりません。次に、各オプションの名前と価格を入力する必要があります。各修飾子には、必要なだけ多くのオプションを指定できます。ここでクラスと私は今それらをどのように使用しています:ユーザーは修飾子の名前を入力する必要がありますし、各オプションの名前と価格を入力する必要があります。各修飾子には、必要なだけ多くのオプションを指定できます。ここにクラスとその使用方法を示します。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

修飾子idを保存するOptionsクラスに1つのフィールドを追加し、sqliteで修飾子用とテーブル用の2つのテーブルを作成し、そこからデータを取得するときにforiegnキーを使用してオブジェクトを構築できます。誰でもあなたのクラスが今ではうまくいけば、オプションテーブルに修飾子IDを保存するだけで、その逆も同様です: 修飾子テーブル[modifierId、name] - オプションテーブル[optionId-name-modifierId] –

+0

それに伴う問題は、とIDが同時に作成された場合、そのインスタンスで修飾子のIDを取得する方法はありますか。 –

+0

idを付けないで修飾語を作成しないでください。私は問題を見ることができません、あなたはコンストラクタ上でIDを割り当てることができますし、オプションIDの各オプションの上に修飾子IDの同じIDを割り当てます。 –

答えて

0

修飾子idを保存するOptionsクラスに1つのフィールドを追加して、sqliteを使用して2つのテーブルを作成してオプションを作成し、そこからデータを取得するときに外部キーを使用してオブジェクトを構築できます。オプションテーブル[optionId、名前、modifierId]

-

修飾テーブル[modifierId、名]:あなたのクラスは今も元気に見える誰でも、あなただけのオプションテーブルの修飾子IDとこのようにその逆を保存することが

+0

は、同時に修飾子とそのオプションの両方を作成します。また、修飾子I.Dは自動インクリメントされます。 –

関連する問題