(간략한 설명을 위해 아래의 예시는 모두 가상의 예시입니다)
오픈소스를 보다보니 List<Customer>을 Customers 라고 랩핑하는 클래스가 있더라구요
맵 사용 시에 HashMap<string, string> 형태로 값을 넣으면 나중에 무슨 키랑 값인지 기억이 안나서
class Name {
string name;
}
class Age {
string age;
}
처럼 써보기는 했습니다.
랩핑하여 가독성을 높히는 클래스는 어떤 상황에 써야 적합한가요?
오픈소스를 보다보니 List<Customer>을 Customers 라고 랩핑하는 클래스가 있더라구요
맵 사용 시에 HashMap<string, string> 형태로 값을 넣으면 나중에 무슨 키랑 값인지 기억이 안나서
class Name {
string name;
}
class Age {
string age;
}
처럼 써보기는 했습니다.
랩핑하여 가독성을 높히는 클래스는 어떤 상황에 써야 적합한가요?
대부분의 상황
원시값 포장, 일급컬렉션 검색
가독성을 위해 랩핑은 뭔소린지 모르겠구려
심지어 맵의 사례는 맵을 랩핑한것도 아니잖아?
가독성을 위한 랩핑은 하단의 예시와 같습니다. 딕셔너리의 경우 키와 값에 정확히 어떤 값을 기준으로 넣어주고 있는지를 매우 쉽게 잊어버릴 수 있기 때문에 아래와 같이 작업하였습니다. 맵 랩핑의 경우 현재 그렇게 작업중입니다. 질문사항과 일대일로 대응되는 예시를 적지 못해 다소 혼란을 드린 것 같습니다.
그러나 가독성의 경우는 도메인 주도 개발 시작하기에서 커스텀 타입을 만들어 랩핑하면 코드를 이해하는데 도움을 줄 수 있다는 주장을 그대로 인용하여 드린 말씀입니다. 이 부분을 어떻게 이해하면 좋을까요?
원시타입이나 그의 래퍼클래스에 대흔 커스텀 타입이야 알겠는데 니 질문은 컬렉션 래핑이었잖냐 오직 가독성만을 위해 컬렉션을 래핑하는 케이스는 잘 모르겠다
그 외에는 가독성을 위해 랩핑할 수도 있긴 하지
저도 그부분이 좀 의아하여 질문을 드렸습니다. 해당 오픈소스에서는 객체 내부에 별도의 추가기능이 없음에도 컬렉션 자체를 랩핑하고 있었거든요.
링크라도 주고 말하든가