위에서 얘기가 나와서 잠깐 짚고 넘어가는 SOLID 원칙
출처는 전공 강의에서 배운 지식
방법 | Case | 특징 및 예시 |
---|---|---|
Extract Class | 한 클래스 안에 이의 구조를 변경하도록 하는 이유가 둘 이상 존재하는 경우 | ex: 학생 클래스 - 성적 정보, 재학 및 졸업 정보, 등록금 납입 정보 각 정보마다 따로 만들고 한 클래스 안에 다른 클래스들을 필드로 갖게 함 (== 구성) (상속보다는 구성을 사용하는 것이 좋음) |
Extract Superclass | 클래스를 나누고 보니 유사한 책임을 나눠 맡고 있는 경우 상위 클래스 추출 | ex: 대학 성적 정보와 대학원생 성적 정보 클래스 -> 성적 정보 클래스를 상속하도록 수정 두 정보 클래스의 구조가 비슷한데 따로 구현하게 되면 성적 관리 시스템은 둘 다 불러서 사용하게 됨 -> 하나의 변경 이유로 두 개의 클래스를 변경해야 함 (ex: 성적 카테고리 추가) |
Shotgun Surgery | 흩어진 메서드들과 필드를 한 클래스로 합침 필요하다면 새 클래스를 추가 | 많은 비용을 요구하므로 최후의 수단으로 사용 (각각의 클래스에 의존하고 있는 다른 클래스들에도 변경이 전파되기 때문) |
그럼 오늘도 야근하러 이만
끗 -