设置有什么办法可以设计我的Java代码,所以这两个对象不会自引用?
我的Java代码包含两个对象:一个组和一个人。每个组可以包含对多个人的引用,但每个人只能属于一个组。
每个人的运动衫的颜色都是从他们团体的颜色中推导出来的。 (注意:如果他们不属于某个团体,他们的毛衣就是灰色的。)
当我在屏幕上绘制人物时,我会自己接受人物和颜色。
守则
人
public class Person {
Color sweatshirtColor = Color.gray;
Group belongsToGroup = null;
public void setGroup(Group g) { belongsToGroup = g; }
}
集团
public class Group {
Color color = Color.red;
List<Person> people = new ArrayList<Person>();
// ... setters for adding and getting people
}
绘制
public void draw(Person dudette, Color shirtColor) { //... }
的问题 集团和个人都互相参考 - 我担心人们可能不同步与其他。我的绘图代码必须修复(因为它是外部的),但是在这个设计中有什么明显的我做错了吗?
编辑:还有一点注意 - 团队可以在整个程序中进行更改。一个人的小组取决于他们的位置,所以他们不断地切换小组。
你尝试用ThreadLocal的? – Chris
这些对象是从数据库填充的吗?同步问题可以通过身份映射模式来解决。因此,每个对象只有一个实例。 –
我认为这些对我的意图来说是过分的。 – sdasdadas