Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- UE_LOG
- 알고리즘
- 강참조
- 자료구조
- 람다사용정렬
- stl
- 애셋로드
- 스마트포인터
- BFS
- 언리얼엔진구조체
- 정렬알고리즘
- 선택정렬
- 데이터애셋
- UELOG
- dataasset
- 언리얼가비지컬렉터
- C++
- 크리티컬섹션
- C++최적화
- enumasByue
- 약참조
- UML관련
- 델리게이트
- 프로그래머스
- 람다
- unorder_map
- 정렬
- UE4 커스텀로그
- map
- moreeffectiveC++
Archives
- Today
- Total
기억을 위한 기록들
[refactoring] 9. 상속 다루기 (完) 본문
1. 메서드 올리기 : 한 클래스를 상속받는 여러 클래스에서 동일한 메서드가 생긴다면 부모클래스에서 올려준다.
2. 필드 올리기 : 1번과 마찬가지로 비슷하게 사용되는 필드가 있다면 부모에서 호출해주자
3. 생성자 본문 올리기 : 서브 클래스들에서 기능이 같은 생성자라면 부모 클래스로 올려주자.
4. 메서드 내리기 : 1번의 반대로. 부모클래스에서 선언되었다고 모든 서브클래스에서 사용되는지 확인해보자.
5. 필드 내리기: 2번의 반대로, 모든 서브클래스에서 사용되지 않는다면 부모클래스에 있을필요가 없다.
6. 타입 코드를 서브클래스로 바꾸기 : 인스턴스를 생성해주는 함수가 있을때 타입에 따라 클래스 종류를 다르게 생성하는게 낫다.
7. 서브 클래스 제거하기 : 서브 클래싱은 원래 데이터 구조와 다른 변종을 만들거나 종류에 따라 동작이 달라지게 할 수 있는 유용한 매커니즘이다. 한번도 활용되지 않거나, 필요로 하지 않는 방식이라면 필요가 없다.
8. 슈퍼클래스 추출하기 : 여러 클래스에서 동일한 기능이 자주 쓰인다면 해당 기능을 선언하는 슈퍼클래스를 만들자.
9. 계층 합치기 : 기능이 서로 독립적으로 있을필요가 없거나, 비슷해진다면 상위,하위 클래스로 나눌필요 없이 합치면된다.
10. 서브클래스를 위임으로 바꾸기
11. 슈퍼클래스를 위임으로 바꾸기
'ReFactoring' 카테고리의 다른 글
[refactoring] 8. API 리팩토링 (0) | 2021.09.11 |
---|---|
[refactoring] 7. 조건부 로직 간소화 (0) | 2021.09.11 |
[refactoring] 6. 데이터 조직화 (0) | 2021.09.11 |
[refactoring] 5. 기능이동 (0) | 2021.09.11 |
[refactoring] 4. 캡슐화 (0) | 2021.09.10 |