-
코드스피츠83 2회 정리카테고리 없음 2019. 8. 28. 21:08
변수: 메모리 주소의 별칭
type: 메모리 길이
- 형을 통해 역할을 묘사함
- 형을 통해 조직을 표현함
- 형을 통해 메시지를 공유함
- 객체 간 계약을 형을 통해 공유함
지원되는 types
static: 단 한개의 인스턴스 존재(동시성 문제를 해결해야 함)
enum: 제한된 수의 인스턴스가 존재(제네릭에 사용 불가)
class: 무제한의 인스턴스가 존재
유틸리티 함수와 본문 함수 구별법
this가 포함여부에 따라 구별할 수 있다. this가 있다면 본문 함수이다.
조건
조건 분기를 절대로 제거할 수 없다. 진리표를 작성하고 분기문을 작성해야 한다.
조건 분기에 대한 2가지 전략
- 내부에서 응집성을 높이는 방법
- 장점: 모든 경우의 수를 한 곳에서 파악할 수 있다
- 단점: 분기가 늘어날 때마다 코드가 변경된다.
- 외부에 분기를 위임하는 경우의 수만큼 처리기를 만드는 방식 => 오브잭트 책과 디자인 패턴은 이 경우를 사용해서 구현한다. 위임의 예는 스트링의 라우터이다.
- 장점: 분기가 늘어날 때마다 처리기만 추가하면 된다.
- 단점: 모든 경우의 수를 파악할 수 없다.
클라이언트는 변경성이 높게, 서버는 변경성이 없게 코드를 작성한다.
책임 = 가치
시스템의 존재 가치는 사용자에게 제공하는 기능
사용자가 사용할 책임 = 시스템의 책임
시스템 차원의 책임을 더 작은 책임으로 분할 => 역할 모델의 핵심은 부분으로 쪼갤수 있는 실력이다.
해당 책임을 추상화하여 역할을 정의
역할에 따라 협력이 정의
책임은 추상 클래스나 인터페이스를 의미하는 것이 아니고 함수이다. 동작하는 것을 의미한다.
책임과 역할을 구분하는 것이 어렵다.
역할 -> 추상화(연역적), 유추(귀납적 방법)을 사용할 수 있다.
좋은 개발자는 회사의 도메인을 얼마나 이해하는 가에 있다.
코드
...