나는 이것이 코드 냄새라고 느낀다. 나는 이것을 더 잘할 수있다. 그렇다면이 점을 지적 해주세요.두 클래스가 서로를 참조하는 생성자가 있습니까?
class main
{
void main()
{
object A
object B
A = new SystemA(ref B)
B = new SystemB(ref A)
}
}
class SystemA
{
SystemB B;
public SystemA (ref B)
{
this.B = B;
}
}
class SystemB
{
SystemA A;
public SystemA (ref A)
{
this.A = A;
}
}
기본적으로 서로 참조하는 두 개의 클래스를 초기화해야합니다.
이 작동하고 나중에 초기화 이후에 액세스 할 때 두 자식 클래스의 클래스 필드에 null 참조 예외를 생성하지 않습니다.
는 내가 아마 초기화 한 후 다음을 설정할 수 있습니다 실현,하지만이 터치 내가 초기화 액션 이러한 과제를 볼 수 있기 때문에, 회피하고자 더 팽창을 추가합니다. 당신이 A
를 구성 할 때 그 B
의 값이기 때문에 - 당신이 실제로 컴파일 된 코드를 준 경우
엄청나게 복잡합니다. 실제 코드를 게시하십시오. –
이것은 너무 많은 후프 점핑을 필요로 할 때마다 그러한 구조의 생성자를 제거하고자합니다. – KevinDTimm
@Brian - 이것들은 제가 언급하고있는 농구대입니다. 여기에 들어가는 트릭이 있습니다 (그리고 그들은 빨기도합니다). – KevinDTimm