将UML类关联“ 1到n”转换为Java代码

时间:2019-01-18 14:01:05

标签: java uml reverse-engineering

我必须进行从UML类图到Java代码的逆向工程。这是一个示例:

enter image description here

如您所见,SCSIController可以具有1..4 DiskDrive。我可以这样用Java表示吗?

public class SCSIController extends Controller{
    private List disks;

    public SCSIController(){
        disks=new ArrayList();
    }

    public void addDisk(DiskDrive d){
        if(disks.size()<4 && !disks.contains(d)){
            disks.add(d);
            ………
            ………
        }else
             ……… //do something else
    }
}

在将磁盘驱动器添加到SCSIController之前,我检查SCSIController的磁盘列表中是否有少于4个磁盘驱动器。这是编码这种1到n关联的正确方法吗?

1 个答案:

答案 0 :(得分:0)

基本上您是正确的。但是,您的多样性不需要唯一性

automatic variables

尽管这很有意义:-)严格遵循UML规范,您可以从代码中省略&& !disks.contains(d))。或者您添加如上所示的类型。 (或者可能只是假设人们能够以正确的方式认识到这一点。)

侧面说明:我认为SCSIController也可以不附加驱动器。您的UML显示1..4,因此您至少需要一个驱动器,这会使您的代码在这方面出错。