11. 기능 편애(Feature Envy)
하나의 클래스에 다른 클래스가 지나치게 의존하는 상황
- 코드 이해와 유지보수가 힘들어짐
해결법
- 관련 데이터가 많은 클래스로 함수를 이동
- 객체지향적으로 사고
- 한 클래스가 하나의 역할만 하도록 구현, 의존성을 적게
- 전략 패턴 사용
클래스의 의존성은 무조건 줄이는 것이 맞다!
12. 데이터 뭉치(Data Clumps)
비슷비슷한 데이터, 밀접하게 관련된 데이터들을 넘길 때
예시로 도시, 우편번호, 동, 호수 등을 하나하나 넘기지 말고 주소라는 클래스 하나로 묶어 전달하는 것이 좋다.
13. 반복문(Loops)
반복문을 쓰는 것이 좋지 않다는 게 아니라
요즘의 트렌드는 '파이프라인'이라는 개념을 제시하는 추세 (LINQ)
반복문: 명령형 프로그래밍, 어떻게? 를 명시
파이프라인: 선언형 프로그래밍, 무엇을?을 명시
파이프라인이나 반복문이나 적절하게 번갈아가며 사용하자
성능이 훨씬 중요할 땐 상대적으로 느린 LINQ보단 반복문을 쓰는 편이 좋긴하다.
- 상황에 따라 선택해 사용
데이터 처리, 가독성 측면에선 LINQ를 쓰는 편이 좋다.
14. 임시 필드(Temporary Field)
임시 변수, 임시 함수 등을 방치하게 되는 상황
임시 변수, 임시 함수등은 따로 클래스로 빼놓는 게 좋다.
-> 협업에서 주의
15. 상속 포기하기 (Refused Bequest)
자식 클래스가 부모 클래스로부터 받은 메서드나 데이터를 일부만 사용하는 경우
-> 잘못된 경우
자식은 부모가 갖고있는 메서드나 데이터를 모두 갖다 써야한다.
상속은 일부만 쓰라고 있는게 아님
부모가 주는 것을 포기하지 말자는 의미
차라리 상속 대신 delegation을 사용
-> 자식 클래스가 부모 클래스의 인스턴스를 내부에 가지고 있게 하는 방법
-> 자식 클래스에서 부모 클래스의 인스턴스를 만들어 그 인스턴스 안에 있는 메서드나 필드를 사용
'내일배움캠프(Unity)' 카테고리의 다른 글
심화 주차 강의 정리 (0) | 2023.12.24 |
---|---|
숙련 주차 3D 강의 정리 (0) | 2023.12.23 |
TIL (0) | 2023.12.19 |
비동기와 Coroutine 특강 (0) | 2023.12.15 |
TMP_Text (0) | 2023.12.14 |