Java类和构造函数

时间:2012-03-05 09:56:13

标签: java class constructor instances

我希望这听起来像是一个愚蠢的问题。

我有一个A类和一个B类。现在唯一的B就是一个String ID。 现在我可以有多个对象A,每个对象可以有0个或更多B类型的对象。 它们包含在每个A类的HashMap(ID,someData)中。

我想要做的是每次在A类中添加新ID以检查是否已经存在 是B类型的on对象,在我拥有的任何其他A类对象中具有相同的ID,如果没有,则创建一个新的B对象。

希望这是有道理的。如果我问的是错误的某种方式,请善意解释 这是一个不好的做法或概念错误。

非常感谢。

编辑:为了更清楚,在我的情况下,不希望为我的所有对象共享HashMap(ID,someData),例如,让我们说A是一个Course类,或者Catalog,或者银行等每个A类可以共享一些学生/客户,但每个A类可能包含不同的B类对象。

4 个答案:

答案 0 :(得分:4)

实践并不差,看起来你正在实施Instance Manager Pattern

  
      
  • 能够查找托管对象的一个​​或多个实例(通过密钥)。如果只有一个托管对象,则不需要密钥。
  •   

答案 1 :(得分:0)

你需要做的就是拥有所有A对象的集合,这样你就可以检查它们。随着您获得更多A对象,这将变得更加低效。这种结构的不同之处可能是在收集时使用ID。

Map<ID,/* class with A and someData *> map = ...

这使您可以确保所有A的唯一ID。

答案 2 :(得分:0)

为了实现您的目的,您可以将HashMap设为static变量,而不是实例变量。因此,它将在所有A类实例之间共享。

答案 3 :(得分:0)

如果我是你,我会创建一个B_Factory类。该类将负责创建B对象。类对象将调用B_Factory方法来添加或删除B对象。在B_Factory中,您可以使用Map来存储B对象的实例。

应该只有一个B_Factory类实例,它将在所有A实例中注入。