サブクラスにシングルトンパターンをどのように持っていますか? たとえば、以下のコードでは itemCatalog が item を拡張しています。クラス item の getPrice ゲッターを使いたい
public class ItemCatalog extends Item{
private static ItemCatalog instance = new ItemCatalog();
private Item itemCatalog[] = new Item[9];
private ItemCatalog(){
}
public static ItemCatalog getInstance(){
return instance;
}
public void populateCatalog(){
itemCatalog[0] = new Item("bb","Baked Beans",35);
itemCatalog[1] = new Item("cf","Cornflakes",100);
itemCatalog[2] = new Item("s0","Sugar",50);
itemCatalog[3] = new Item("tb","Tea Bags",115);
itemCatalog[4] = new Item("ic","Instant Coffee",250);
itemCatalog[5] = new Item("b0","Bread",50);
itemCatalog[6] = new Item("s0","Sausages",130);
itemCatalog[7] = new Item("e0","Eggs",75);
itemCatalog[8] = new Item("m0","Milk",65);
}
public void searchCatalog(String itemCode){
for (int i = 0; i < itemCatalog.length; i++){
if (itemCode.equals(itemCatalog[i].getItemCode())){
price = itemCatalog[i].getItemprice();
break;
}
}
}
編集 2: このクラスをシングルトンとして、シングルトンではないアイテム クラスのサブクラスにしたいと考えています。
コンストラクターに super(String itemCode, String description, int price) を配置すると、エラーが発生します
編集 3: OK、これらのコード行で問題を解決できると思います。私はJavaが初めてです..まだ練習と学習を続けています:) ...あなたの洞察に感謝します
private ItemCatalog() {
}
private ItemCatalog(String itemCode,String description, int price){
super(itemCode,description, price);
}
編集 4: これが正しいかどうかはわかりませんが、クラス item で getPrice メソッドを使用して、価格である searchcatalog の結果を返したいと考えていました。これは正しい設計でしょうか?