gpt4 book ai didi

java - 在 Java OOP 中允许对象了解其类型的其他实例是否是一种好的做法?

转载 作者:行者123 更新时间:2023-11-30 06:13:17 24 4
gpt4 key购买 nike

我特别谈到使用静态变量来实现这一点。考虑 Java 中的以下对象:

public class MyObject{
private static ArrayList<String> ID_List = new List<String>();
private String ID_Number;
public MyObject(){
/* Assign a random number to ID_Number
* And ensure that this is a unique number
* not found in ID_List. Then add it to ID_List. */
}

/* Other methods and such */
}

在某种程度上,这是为了确保制作的每个对象都具有易于访问和阅读的独特且有区别的属性。但是,我不确定所有相同类型的对象之间的这种奇怪耦合是否是一种好的做法。

因为这让我感到不舒服,所以我倾向于认为这不是一个好主意。以 OOP 方式思考这个问题的正确方法是什么?

最佳答案

使用静态 ID_INCREMENTOR 和本地 objectID 不实用吗?在构造函数中,将ID_INCREMENTOR加一,然后将objectID设置为ID_INCREMENTOR当前值?

那么没有两个对象会有相同的 id。

例子:

public class MyObject{
private static long ID_INCREMENTOR = 0;
private long id;
public MyObject(){

ID_INCREMENTOR++;
id = ID_INCREMENTOR;

}

public long getID(){
return id;
}

/* Other methods and such */
}

据我所知,这可能是最简单的方法。尽管您可以确信没有两个对象会具有相同的唯一标识符,但这些对象彼此不了解,除非您通过类/反射对其进行设置。

关于java - 在 Java OOP 中允许对象了解其类型的其他实例是否是一种好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com