반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- mockito
- 디자인패턴
- 안드로이드
- 스레드
- 알고리즘
- 글또
- ReactiveProgramming
- 코틀린
- Gradle
- Kotlin
- 안드로이드스튜디오
- 회고
- 병럴프로그래밍
- g 단위테스트
- Coroutine
- Rxjava
- 자바
- 코루틴
- k8s
- 알게되는
- viewmodel
- Compose
- theming
- 커스텀상태
- 병렬프로그래밍
- 테스트
- 안드로이드강좌
- 책
- android
- kotlin강좌
Archives
- Today
- Total
선생님, 개발을 잘하고 싶어요.
[오브젝트] 챕터 14 - 일관성 있는 협력 본문
지금까지 읽은 오브젝트의 모든 내용을 총 망라한 챕터입니다.
전화요금 설계를 일관성 있는 협력으로 구성하며 지금까지 설명한 모든 개념을 총 동원하고 리마인드 시킵니다.
역할, 책임, 협력에서 시작해서 의존성 역전 법칙, 개방 폐쇠 원칙, 리스코프 치환 원칙을 모두 활용하고 상기시킵니다.
- 도입일관성 있는 협력 패턴을 적용하면 코드가 이해하기 쉽고 직관적이며 유연해질 것이다.
- 객체지향의 목표는 적절한 책임을 수행하는 객체들의 협력을 기반으로 결합도가 낮고 재사용 가능한 코드 구조를 창조하는 것이다.
- 설계에 일관성 부여하기
- 객체 지향에서 기능을 구현해야 한다?
- 기능을 위해 필요한 책임을 식별한다.
- 책임을 할당할 적절한 객체를 선택한다.
- 다양한 설계 경험을 익혀라.
- 디자인 패턴을 학습하고 변경이라는 문맥 안에서 디자인 패턴을 적용해 봐라.
- 훌륭한 구조를 설계하기 위한 기본 지침
- 변하는 개념을 변하지 않는 개념으로부터 분리하라.
- 변하는 개념을 캡슐화하라.
- 코드 관점에서 생각하면...
- 조건에 따라 분기되는 로직 → 개별적인 변경
- 객체 지향에서는 조건 로직을 객체 사이의 이동으로 바꾼다.
- 조건 로직 → 함수 호출, 컴파일 타임에 실행 흐름 설계 완료, 런타임에 동작 수정 못함
- 객체 사이의 메시지 → 메시지 전송, 동적 바인딩, 런타임에 실제 객체의 메서드를 탐색 및 호출
- 객체지향적인 코드는 조건을 판단하지 않는다. 단지 다음 객체로 이동할 뿐...
- 변경의 이유와 주기를 기준으로 클래스를 분리해라.
- 단일 책임 원칙(SRP)을 따르도록 클래스를 분리해야 한다는 뜻.
- 변하는 개념을 별도의 서브타입으로 분리한 후 이 서브타입들을 클라이언트로부터 캡슐화한 것
- 캡슐화란 변하는 어떤 것이든 감추는 것 (코드 수정의 파급효과를 제어하는 모든 기법)
- 데이터 캡슐화
- 메서드 캡슐화
- 객체 캡슐화: 합성
- 서브타입 갭슐화: 다형성의 기반
- 객체 지향에서 기능을 구현해야 한다?
'일상 > 책 리뷰' 카테고리의 다른 글
[주식] 미국 주식으로 시작하는 슬기로운 퀀트투자 리뷰 - 한빛미디어 (0) | 2022.03.31 |
---|---|
[오브젝트] 챕터 15 - 디자인 패턴과 프레임워크 (0) | 2022.03.23 |
[오브젝트] 챕터 13 - 서브클래싱과 서브타이핑 (0) | 2022.03.23 |
[오브젝트] 챕터 12 - 다형성 (0) | 2022.03.23 |
[오브젝트] 챕터 11 - 합성과 유연한 설계 (0) | 2022.03.20 |
Comments