2011-11-19 3 views
0

이 질문은 원래 질문이 답할 수없는 것으로 간주되는 특정 예제에 대해 질문하기 위해 편집되었습니다.개체 또는 값을 함수로 전달

비슷한 개체 및 상속 된 개체를 비롯한 다양한 개체에 대한 정보를 표시해야하는 응용 프로그램에서는 기본 클래스 개체를 표시 함수에 전달하고 개체를 쿼리하여 표시 할 데이터를 결정하는 것이 좋습니다 ; 또는 각 필드를 값으로 전달해야합니다. 값을 전달하는 장점은 표현하는 오브젝트에 직접적인 종속성을 필요로하지 않으므로 표시 (UI)를 비즈니스 규칙 오브젝트와 분리 된 상태로 유지합니다.

+2

"의존적"이며 매우 언어 적 본질이 아닙니다. 일반적인 기능은 훌륭하지만 다른 계약을 재정의 할 필요는 없습니다. –

+2

이것은 건설적인 (답할 수 없음) 의미가 아닙니다. 그것은 "자동차 나 트럭 같은 것이 더 낫다"와 같은 것입니다. - 올바른 대답은 사람을 편안함 또는 건초 더미로 끌고 갈 필요가 있는지 여부에 달려 있습니다. "개가 더 낫지? 개나 고양이가 뭐야?" 당신이 쥐를 없애려고하는지 또는 애완 동물에게 집안을 가져다가 가져 가려고하는지 여부에 달려 있습니다. 투표를 종료합니다. 죄송합니다. :) –

+0

의견을 보내 주셔서 감사합니다. 과거에 어려움을 겪었던 특정 사례를 반영하여 질문을 변경했습니다. 희망이 도움이됩니다. – TownCube

답변

0

일반적으로 메소드가 작업을 수행하는 데 필요한 최소한의 정보를 전달해야합니다. 예를 들어, 메소드가 생년월일이 주어진 사람의 나이를 계산하는 경우 Person 객체 전체를 전달할 필요는 없으며 생년월일과 현재 날짜 만 있으면됩니다.

위의 방법을 따르면 사용자는 훨씬 더 유지 관리 할 수있는 방법 loosely coupled을 유지할 수 있습니다.

이 경우 기본 클래스의 많은 필드에 액세스해야하는지 아니면 몇 가지 액세스 만해야하는지 여부를 조정해야합니다. 필드가 많은 경우 전체 객체를 전달하는 것이 더 적합 할 수 있습니다. 이것은 좋은 결합 (이 해답의 첫 부분을 보아라.)과 동시에 많은 수의 매개 변수를 메소드에 전달하는 것을 피하는 것의 일종이다.

관련 문제