序列图转换为Java代码:如何?

问题描述 投票:-3回答:1

今天是个好日子。我实际上在使用这些序列图时遇到了一些麻烦。它说“所有动物都依赖于种族生活在自己的笼子里。”我真的需要帮助这个简单的图表,因为我真的不知道如何在我的Java程序中编写它。我确定它的大部分都是简单的。所以请帮帮我!这是图:

enter image description here

Zookeeper类/ 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; 
   }

}
java sequence-diagram
1个回答
0
投票

你可以看到一切都发生在构造函数Cage()中:

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

请注意,如果我们稍后需要使用它,z可能是一个字段。

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

该名称被传递给构造函数,并且Set cages被初始化(使用空的HashSet)。我使用了HashSet而不是TreeSet,因为Cage不是Comparable

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

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

最后,方法addCage在集合中添加了Cage

   public boolean addCage(Cage cage) {
       return cages.add(cage);
   }
© www.soinside.com 2019 - 2024. All rights reserved.