UML图中的一对一关系

时间:2013-04-22 16:20:05

标签: java uml

我是UML图表的新手并且正在读一本关于它的书。它有一个如下的类图:

enter image description here

它说,

The implication of a one to one association is that whenever you create an 
instance of one of the classes, you must simultaneously create an instance 
of the other, and when you delete one you must delete the other.

我的问题是,我们真的必须这样做吗?我们不能将“null”作为其中一个的值吗?例如,我正在考虑这个图的java代码,如下所示,当我想创建一个Company项时,我可以将null作为参数。我错了吗?或者这是一段错误或错误的代码?

public class Company{
       . . .
    private BoardOfDirectors director;
    public Company(BoardOfDirectors director){
          this.director=director;

    }
       . . .
}

public class BoardOfDirectors{
       . . .
   private Company company;
   public BoardOfDirectors(Company company){
          this.company=company;

   }
       . . .
}

谢谢。

1 个答案:

答案 0 :(得分:1)

这完全取决于UML背后的业务规则。您可能希望创建一个解释当前没有董事会的对象,而不是NULL。如果稍后公司对象决定要创建董事会,那将是明智之举。然后你可以将它们存储在一个彼此的数组中。通过这种方式,您将对象存储在另一个对象中。

我创建了一些程序,用于将对象存储在对象内的对象中,依此类推。这允许使用持久代码并且可以序列化状态。然后,您可以让数组迭代并维护UML图的基数。

实际上,您必须接受项目的业务规则,在实体后面应用基数和建模,并尝试模仿这个现实。根据我在学校的教学,我们的工作是模仿现实并将其视为现实生活,以便我们的代码更有意义。从长远来看,它将更容易理解和维护。虽然我为了速度而不时打破这个规则,但这就是糟糕的代码开始形成的原因。

如果您还没有,请查看http://uml.org

干杯!