2017-12-19 12 views
-3

おはようございます。私は実際にこれらのシーケンスダイアグラムにいくつか問題があります。 「すべての動物はレースに応じて自分のかごに住んでいます」と言っています。私はこの単純な図の助けが本当に必要です。私はyallのほとんどのためにシンプルだと確信しています。だから私を助けてください!ここダイアグラムです:シーケンス図をJavaコードに変換する方法:

enter image description here

飼育係クラス/ Mainclass:

package General; 

import Zoo.Cage; 

public class ZooKeeper { 
    public static void main(String[] args){ 
     Cage cage1 = new Cage(); 
    } 
} 

ケージクラス:

public class Cage { 
    private String type; 
    private ArrayList<Animal> cagedAnimals; 

    public Cage(String type){ 
     this.type = type; 
    } 

    public Cage() { 
    } 

    public Animal selectAnimal(){ 
     return null; 
    } 

    public void getCageType(){ 
    } 

    public boolean addAnimal(Animal anAnimal){ 
     return true; 
    } 

    public ArrayList<Animal> getCagedAnimals(){ 
     ArrayList<Animal> i = new ArrayList<>(); 
     return i; 
    } 

    public void addReptileEggs(ArrayList<Egg> reptileEggs){ 
    } 
} 

動物園クラス:

package Zoo; 

import General.Animal; 
import General.Egg; 
import java.util.ArrayList; 
import java.util.TreeSet`; 
public class Zoo { 
    private final String name; 
    private TreeSet<Cage> cages; 
    /* private ArrayList<Cage> cages;*/ 
    private String Zoo; 
    private static Zoo instance = new Zoo(); 

    public Zoo() { 
     this.name = "AnimalK"; 
    } 

    public static Zoo getInstance() { 
     if (instance == null)   { 
     instance = new Zoo(); 
     } 
     return instance; 
    } 

} 

答えて

0

あなたはすべてが、コンストラクタCage()で起こることがわかります。私たちは、後でそれを使用する必要がある場合zはフィールドであることができることを

public Cage() { 
    Zoo z = Zoo.getInstance("ICO41A"); 
    boolean b = z.addCage(this); 
} 

注意を。

クラスZoo今のところ、getInstanceにはStringという引数があります。私はそれがZooの名前だと仮定し、かつ、代わりに単一の静的インスタンスの、我々は静的Map<String,Zoo>を保つことができます。

public class Zoo { 
    private static Map<String,Zoo> instances = new HashMap<>(); 

    public static Zoo getInstance(String name) { 
     Zoo instance = instances.get(name); 
     if (instance == null)   { 
     instance = new Zoo(name); 
     instances.put(name, instance); 
     } 
     return instance; 
    } 

名がコンストラクタに渡され、Setcagesが初期化される(空にHashSet)。 CageComparableではないので、私が代わりにTreeSetHashSetを使用しました:

private final String name; 
    private final Set<Cage> cages = new HashSet<>(); 

    private Zoo(String name) { 
     this.name = name; 
    } 

し、設定するCageを追加addCage最後に、方法:

public boolean addCage(Cage cage) { 
     return cages.add(cage); 
    } 
関連する問題