일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 유여난 설계
- 명령-쿼리 분리
- 객체지향
- 컴파일 타임 의존성
- 하향식 접근
- 유연한 설계
- OOP
- 상속
- 책임주도설계
- iSP
- 서브 타이핑
- 의존성
- 믹스인
- 설계 재사용
- dip
- 오브젝트
- Apple # HIG #iOS15 #iOS14 #Human #Interface #Guidelines #Apple developer # Apple human interface guidelines
- 런타임 의존성
- 상속 조합 폭발적 증가
- OCP
- 일관성 있는 협력
- 객체 생성 사용 분리
- 합성
- 추상화
- 알고리즘
- 다형성
- 메서드를 통한 해결
- '기존 설계 재사용
- Swift#flatMap#map#Monad#함수형 프로그래밍#Optional
- 행동 호환성
Archives
- Today
- Total
도니의 iOS 프로그래밍 세상
[오브젝트 2회독] 3장 - 역할, 책임, 협력 본문
협력
- 객체는 자율적, 협력적 존재
- 자율적인 존재가 되기 위해
- 캡슐화를 통해 side-effect를 최소화
- 다른 객체와의 협력을 통해, 특정 행동을 위임할 수 있어야 함
협력을 통해 객체의 문맥이 결정
- Movie라는 객체는 일반적인 의미가 아닌, 협력 내에서 의미가 결정됨
→ 개인적 의견
- 팀 프로젝트시 가장 중요한 건, 팀원들간의 객체 이해도
- 객체가 일반적인 의미를 많이 갖고 있으면 있을수록, 이해가 빨라짐
- 따라서, 직관적 이해를 위해 일반적인 의미를 웬만하면 갖는게 더 좋음
책임
- 객체가 수행하는 행동을 의미
- 하는것, 아는것으로 나뉨
- 책임 할당
- 특정 동작 수행을 위해, 어떤 객채에게 책임을 할당할 것인지가 중요
- 필요한 정보를 가장 많이 아는 객체에게 할당해주어야 함
- 특정 동작 수행을 위해, 어떤 객채에게 책임을 할당할 것인지가 중요
- 메세지 객체 결정
- 객체의 행동을 위한 메세지 결정 → 그 메시지에 적합한 객체를 선택(not 객체의 책임이 이러하니 얘가 모든걸 처리하면 되겠다가 아님, 제일 중요한 건 메세지! 행동! 그걸 할 객체를 찾는건 다음 step)
- 이러한 결정 과정을 통해 interface가 간결해짐
행동
- 행동이 상태를 결정
- 상태는 행동을 위한 재료일 뿐, 상태가 중심이 되면 캡슐화가 저해되고 side-effect가 더 많아짐
역할
- 역할과 책임의 차이
- 역할은 교체 가능한 책임의 집합
- ex. 영화관 역할 → CGV, 롯데시네마, 메가박스 객체
결론
- 협력을 위해, 객체는 자율적 존재가 되어야 함
- 객체는 협력을 통해 문맥이 결정(→ 개인적으로 일반적인 의미와 동일하면 할수록 팀원들간 이해가 간단해짐)
- 객체에게 가장 중요한건 행동, 상태는 그를 위한 재료
- 메세지(행동)이 결정되고, 그걸 수행할 객체를 찾아야 함.
'OOP' 카테고리의 다른 글
[오브젝트] 10장 - 상속과 코드 재사용 (0) | 2024.10.01 |
---|---|
[오브젝트] 9장 - 유연한 설계 (1) | 2024.09.28 |
[오브젝트 2회독] 2장 - 객체지향 프로그래밍 (3) | 2024.09.08 |
[오브젝트 2회독] 1장 - 객체 설계 (0) | 2024.08.15 |
[오브젝트] 15장 - 디자인 패턴 / 프레임워크 (1) | 2024.07.21 |
Comments