본문 바로가기
모바일앱/Swift

클래스상속은 언제 하면 좋을까?

by GeekCode 2021. 10. 19.
반응형

 

개발철학에 따라 다르다고 할 수 있다.

 

상속은 중복된 코드를 제거할 수 있는 기회가 있다.

하지만 상속이 잦아지면 상속의 깊이가 깊어져서 유지보수가 어려워질 수 있다.

 

사실 경험에서 나온다.

 

 

1. Single Responsibility 단일책임 ; 클래스가 한가지 점만 취급하는가?

2. Type Safety 타입이 분명해야할 때 ; 부모 혹은 다른 자식의 클래스를 명확하게 표현해야하는가?

3. Shared Based Classes 다자녀가 있다 ; 기본동작에 대해서 다양하게 구현해야하는가?

4. Extensibility 확장성이 필요한 경우; 외부앱에서 사용되어야 하는가? ,  확장성이 필요한가?

5. Identity 정체를 파악하기 위해 ; 객체 자체의 정체성을 구분하고 싶은가?

 

1. 각 클래스는 한개의 고려사항만 있으면 된다. -> 골키퍼가 공격수까지 하지 않는다.

그렇지 않으면 정체성이 모호해 질 수 있고 유지보수가 어려워진다. 

 

2. 스포츠팀을 만드는데 운동부 말고 미술부 과학부가 지원을 하면 안된다. 스포츠팀 감독입장에서는 운동부만 걸러서 보고 싶다.

그래서 운동부애들만 받고 싶을때 사용

 

3. 내용자체를 따로따로 구현할 때

미술학생이 학습한다 -> 미술 

의대생이 학습한다 -> 의학

4. 다른사람에게 학생 객체를 제공하고 나면 그것으로 의대생 미대생 등등 확장이 가능

 

5. 어떤 클래스인지 어떤 객체인지를 판단할 경우

->   학생이긴 학생인데 체대생인지 미대생인지?

 

 

반응형