는 다음과 같은 디자인을 가지고 말 개체? 즉, ClassA
(예 : ClassA.GetVegetables()
)의 메소드가 있지만 ClassA
메소드는 ClassB
의 ClassC
속성에 액세스해야한다는 것입니다.액세스 부모 클래스 속성
- 참조가 개체의 인스턴스로 회원/방법/객체의 속성
되는지 여부를 ClassA가 할 수 액세스 할 수
는 다음과 같은 디자인을 가지고 말 개체? 즉, ClassA
(예 : ClassA.GetVegetables()
)의 메소드가 있지만 ClassA
메소드는 ClassB
의 ClassC
속성에 액세스해야한다는 것입니다.액세스 부모 클래스 속성
되는지 여부를 ClassA가 할 수 액세스 할 수
임의의 코드를 보지 않고 접근하는 가장 좋은 방법은 원하는 정보를 GetVegetables
메소드의 인수로 전달하는 것입니다.
일부 전역 상태에 의존하지 않고 메소드를 매우 독립적으로 만들려면 모든 필수 데이터를 인수로 전달하는 것이 가장 이상적입니다.
이것은 현재 디자인이 최적이라고 가정합니다. 이는 디자인 세부 사항을 변경하여 문제가 해결 될 수 있지만 더 많은 코드를 보지 않고는 알 수 없습니다.
이 보이는 을 호출하는 경우 ClassB의 모든 메서드는 ClassA에 ClassB (첫 번째 개념)에 대한 참조가 있는지 여부에 따라 다릅니다. ClassB의 인스턴스를 ClassA의 생성자에 전달하면됩니다.
ClassA에 ClassB 인스턴스에 대한 참조가 있으면 public
으로 표시된 ClassB의 메서드에만 액세스 할 수 있습니다. 자세한 내용은 access modifiers
을 참조하십시오.
아니요.이 설정에서는 아니요. 아니요. 디자인을 재구성해야합니다. 당신을 인수로 넘기는 것을 어떻게 막을 수 있습니까? –
@JeroenVannevel 중복되지 않습니까? 기본적으로'ClassBobj.ClassAprop_obj.GetVegetables (ClassBobj.ClassCprop_obj)'를 호출해야합니다. – user3175663
예, ClassA 인스턴스에 ClassA 액세스를 제공해야합니다. void ClassA.GetVegitables (ClassB argumentName)입니다. 그런 다음 ClassB에서 PropertyA.GetVegitables (this)를 수행합니다. – Thraka