반응형
개발철학에 따라 다르다고 할 수 있다.
상속은 중복된 코드를 제거할 수 있는 기회가 있다.
하지만 상속이 잦아지면 상속의 깊이가 깊어져서 유지보수가 어려워질 수 있다.
사실 경험에서 나온다.
1. Single Responsibility 단일책임 ; 클래스가 한가지 점만 취급하는가?
2. Type Safety 타입이 분명해야할 때 ; 부모 혹은 다른 자식의 클래스를 명확하게 표현해야하는가?
3. Shared Based Classes 다자녀가 있다 ; 기본동작에 대해서 다양하게 구현해야하는가?
4. Extensibility 확장성이 필요한 경우; 외부앱에서 사용되어야 하는가? , 확장성이 필요한가?
5. Identity 정체를 파악하기 위해 ; 객체 자체의 정체성을 구분하고 싶은가?
1. 각 클래스는 한개의 고려사항만 있으면 된다. -> 골키퍼가 공격수까지 하지 않는다.
그렇지 않으면 정체성이 모호해 질 수 있고 유지보수가 어려워진다.
2. 스포츠팀을 만드는데 운동부 말고 미술부 과학부가 지원을 하면 안된다. 스포츠팀 감독입장에서는 운동부만 걸러서 보고 싶다.
그래서 운동부애들만 받고 싶을때 사용
3. 내용자체를 따로따로 구현할 때
미술학생이 학습한다 -> 미술
의대생이 학습한다 -> 의학
4. 다른사람에게 학생 객체를 제공하고 나면 그것으로 의대생 미대생 등등 확장이 가능
5. 어떤 클래스인지 어떤 객체인지를 판단할 경우
-> 학생이긴 학생인데 체대생인지 미대생인지?
반응형
'모바일앱 > Swift' 카테고리의 다른 글
Day03: enum (0) | 2021.11.29 |
---|---|
Day02 : For-each(자료 보강 필요) (0) | 2021.11.28 |
Day01 : Conditional Statements_If (0) | 2021.11.26 |
생성자 이해하기, 2-phase Initialization, Convenience Initializer (0) | 2021.10.20 |
상속 개념을 코드로 익히기 (0) | 2021.10.18 |
클래스, 언제 클래스? 언제 스트럭트? (0) | 2021.10.16 |
메소드 개념 ( + extension) (0) | 2021.10.14 |
프로퍼티 vs 메소드 (0) | 2021.10.14 |