Junroot / junroot.github.io

MIT License
0 stars 0 forks source link

programming/%EC%97%98%EB%A0%88%EA%B0%95%ED%8A%B8-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-%EC%9B%90%EC%B9%99%EC%9D%84-%EC%A0%81%EC%9A%A9%ED%95%B4-%EB%A6%AC%ED%8C%A9%ED%84%B0%EB%A7%81%ED%95%98%EA%B8%B0/ #6

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

엘레강트 오브젝트 원칙을 적용해 리팩터링하기 - Junroot

인자의 값으로 null을 절대 허용하지 마라

https://junroot.github.io/programming/%EC%97%98%EB%A0%88%EA%B0%95%ED%8A%B8-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-%EC%9B%90%EC%B9%99%EC%9D%84-%EC%A0%81%EC%9A%A9%ED%95%B4-%EB%A6%AC%ED%8C%A9%ED%84%B0%EB%A7%81%ED%95%98%EA%B8%B0/

Kyurenpoto commented 3 years ago

"충성스러우면서 불변이거나, 아니면 상수이거나" 파트를 보시면 아시겠지만, 엘레강트 오브젝트는 "상수 객체"와 "불변 객체"를 구분하고 있습니다. 작성자님이 말씀하시는 매번 객체를 새로 생성하는 것은 상수 객체의 특징입니다. 해당 파트의 상수 리스트와 불변 리스트를 보시면 쉽게 이해할 수 있습니다.

Junroot commented 3 years ago

@Kyurenpoto 감사합니다. 참고하겠습니다 👏

Kyurenpoto commented 3 years ago

추가로 객체 생성 관련한 파트에서 생성자로 넘어온 인자를 변환해서 다른 생성자로 넘기는 코드를 예시로 들고 있습니다. 해당 방식처럼 외부 클래스의 메서드를 호출한 뒤 그 리턴값을 사용하는 방식이라면 유효성 검증 문제 또한 해결할 수 있습니다. 또 다른 방식으로는 팩토리/빌더 메서드에서 유효성 검사 메서드를 호출하는 방식이 있지만, 근본적으로 앞서 소개한 방식과 동일한 방식입니다.