먼저 각 그룹과 관련된 메타 데이터를 개최 전용 클래스를 사용하여 당신에 대해 얘기 "그룹"의 개념을 구체화 :
class Group
{
private int index = -1;
public Group(int index)
{
this.index = index;
}
public int getIndex()
{
return index;
}
}
그런 다음 각 클래스의 그룹 정보 데이터를 할당
.
각 개체의 인스턴스가 생성되기 전에 색인을 알고 있다면 생성자를 사용하십시오. 팩토리 패턴은 인스턴스화 프로세스가 복잡 할 경우 캡슐화하는 데 도움이 될 수 있습니다.
당신이 경우 전용 방법 사용에 대한 액세스 권한이 여전히 후자 알고있는 경우 : 각 인스턴스를 요청할 것입니다 : 당신이 인스턴스에 액세스 할 수없는 경우
public void assignToGroup(Group group)
더 이상 당신이 몇 가지 간단한 반전을 사용할 수를 그 그룹 : 외부 메소드
getMyGroup(this)
는 :
public Group getMyGroup(MyClass instance)
{
// ... some complex logic to determine the right group based on the instance state ...
}
AOL 케이스 수도원입니다 이온은 상수에 사용되며, '랜덤'은 그렇지 않습니다. –
굉장! 이것은 매우 도움이됩니다! 클래스 그룹의 모든 새 인스턴스를 생성하는 클래스가 하나 있으면 어떻게됩니까? 그 수업 내에서이 같은 시나리오를 만들어야합니까? –
@ TomHawtin-tackline 정확하게 상수를 정의하는 방법에 따라 달라집니다. 오브젝트 상태가 변경 가능할지라도 오브젝트 참조의 값이 동일하게 유지되는 한이를 Java의 "정적 최종"과 동일하게 만드는 것이 일반적입니다. (C++에서,'const *''const *'의 차이점) – millimoose