문제

클래스에 생성자에 너무 많은 매개 변수가있는 경우 구조 나 빌더 패턴을 사용할 수 있습니다.

어떤게 더 좋아? 좋은 연습이 있습니까?

도움이 되었습니까?

해결책

필요에 맞는 구조가있는 클래스를 사용하십시오. Martin Fowler는 유사한 기술이 하나도 있습니다 datatransferobject (dto), 여러 통화 (Periumblity Database Call)를 사용하여 데이터를 검색하는 대신 객체 모델을 전달하여 비용을 줄입니다.

빌더 패턴에 대한 이점 :

  1. 클래스 구조에는 추가 논리가 없으므로 읽기가 더 쉽다는 것을 의미합니다 (덜 논리)
  2. 생성하지 마십시오 실제 작업을 수행하는 생성자 코드 냄새, 다시 코드를 쉽게 읽을 수 있도록합니다.
  3. 참조를 전달하고 새로운 객체를 만들지 않기 때문에 작업은 저렴합니다. 특히 데이터 구조가 클 때.

단점 : 물체는 변이 상태입니다.

다른 팁

그것은 매개 변수의 것이 무엇인지, 그리고 서로의 관계와 옵션과 옵션에 달려 있습니다.

여러 매개 변수가 관련된 경우 일반적으로 해당 매개 변수를 저장하기 위해 별도의 클래스 (또는 구조)를 만드는 것이 좋습니다.

예를 들어 대신

TransferMoney(long srcAccountNumber, int srcAmount, Currency srcCurrency, long destAccountNumber)

우리는 SRC Ammount 및 SRCCurrency가 관련되어 있음을 알 수 있으며 다양한 양의 돈을 처리하고 다른 통화로 변환하는 방법을 추가하고 매개 변수 수를 줄일 수있는 새로운 클래스를 만들 수 있습니다.

TransferMoney(long srcAccountNumber, Money amount, long destAccountNumber)

이 질문은 언어 불가지론이지만, 기본값 (Java와 같은)을 지원하지 않는 언어가있는 경우 가능한 모든 조합에 맞는 숫자와 매개 변수 유형을 가진 여러 개의 과부하 메소드가 필요할 수 있습니다. 조합이 많으면 건축업자가 더 깨끗한 방법입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top