•
mvc
◦
vc가 상당히 비대해진다
•
mvvm 도입시
◦
vm으로 쪼개게 되어서 작아지는 느낌이 된다.
◦
vm이 커지게 된다.
등등 massive는 아키텍쳐의 문제가 아니다.
•
Gof책에서도 상속대신 합성을 선호해라
◦
상속은 유연성이 떨어진다.
◦
부모의 행위를 거부하는것은 리스코프 원칙에 어긋난다.
▪
UISwitch가 대표적으로 frame을 바꿔도 사이즈가 변경되지 않아서 리스코프 원칙 위반으로 혼란 야기
◦
Value타입은 상속을 지원하지 않아서 합성을 쓸수 밖에 없고 스유의 경우 밸류 타입이다.
상속은 화이트박스 합성은 블랙박스
•
합성을 이용하면 복잡해보이는 기능도 조합하여 분리 할 수 있다.
얼마나 쪼갤지 파악하는것은 개발자의 몫
•
모바일 앱에서는 네비게이션만해도 크기떄문에 코디네이션과 분리한다.
RIBs
리블렛 - 립(갈비)의 뼈 하나하나를 의미 여기서는 각 화면의 ribs한 세트를 의미