일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 믹스인
- 추상화
- OCP
- OOP
- 오브젝트
- 메서드를 통한 해결
- 다형성
- 서브 타이핑
- 설계 재사용
- 명령-쿼리 분리
- 유연한 설계
- 알고리즘
- 런타임 의존성
- dip
- 유여난 설계
- 객체 생성 사용 분리
- 상속
- 일관성 있는 협력
- 행동 호환성
- 하향식 접근
- 의존성
- 컴파일 타임 의존성
- '기존 설계 재사용
- 상속 조합 폭발적 증가
- Apple # HIG #iOS15 #iOS14 #Human #Interface #Guidelines #Apple developer # Apple human interface guidelines
- 책임주도설계
- 객체지향
- 합성
- iSP
- Swift#flatMap#map#Monad#함수형 프로그래밍#Optional
- Today
- Total
목록2024/09 (3)
도니의 iOS 프로그래밍 세상
유연하게 대응할 수 있는 설계를 만드는 원칙 중 하나인 OCP(Open-Closed Principle)에 대해 알아보자.Chap01. OCP소프트웨어 개체(클래스, 모듈, 함수)는 확장에 열려 있고, 수정에 닫혀 있어야 한다.확장에 대해 열려있다: 애플리케이션 요구 사항 변경시, 변경에 맞게 새로운 동작을 추가해서 기능을 확장할 수 있다.수정에 닫혀 있다: 기존 “코드”를 수정하지 않고, 애플리케이션 동작을 추가하거나 변경할 수 있다.이는 결국 추상화를 의미한다. 추상화 과정을 거쳐 문맥이 바뀌더라도 변하지 않는 부분만 남고, 변하는 부분은 생략된다.런타임 때 의존성이 변경되도록 구현하면 된다.결국, 문맥이 바뀌더라도 변하지 않는 부분을 추상화하고, 변하는 부분이 수정할 수 있도록 하는 것이 핵심ex. ..
협력객체는 자율적, 협력적 존재자율적인 존재가 되기 위해캡슐화를 통해 side-effect를 최소화다른 객체와의 협력을 통해, 특정 행동을 위임할 수 있어야 함협력을 통해 객체의 문맥이 결정Movie라는 객체는 일반적인 의미가 아닌, 협력 내에서 의미가 결정됨→ 개인적 의견팀 프로젝트시 가장 중요한 건, 팀원들간의 객체 이해도객체가 일반적인 의미를 많이 갖고 있으면 있을수록, 이해가 빨라짐따라서, 직관적 이해를 위해 일반적인 의미를 웬만하면 갖는게 더 좋음책임객체가 수행하는 행동을 의미하는것, 아는것으로 나뉨책임 할당특정 동작 수행을 위해, 어떤 객채에게 책임을 할당할 것인지가 중요필요한 정보를 가장 많이 아는 객체에게 할당해주어야 함메세지 객체 결정객체의 행동을 위한 메세지 결정 → 그 메시지에 적합한..
1. 영화 예매 시스템결국 프로그래밍에서 중요한 건 용어를 알맞게 정의하는 것책에서 영화 예매 프로그램을 구현하기 전, 영화와 상영의 정의를 나누고 있음우리가 일반적으로 예매하는 건, 영화가 아닌 상영(특정 시간에 상영되는 영화)영화는 단순히 실제 영화 정보를 담고 있음이게 실제 세계와 맞는지 중요하지 않고, 해당 프로그램을 만들 때 이렇게 정의한 게 중요2. 객체지향 프로그래밍을 향해객체, 클래스, 협력객체 지향 프로그래밍의 본질은 객체(not class)객체 지향에 핵심 두가지어떤 객체가 필요한가?이를통해, 해당 객체에 필요한 state(속성)과 행동(behavior)를 정의객체는 협력하는 공동체의 일원(not 독립적 존재)객체를 협력의 대상으로 봄으로써, 유연하고 확장 가능하게 만듦클래스, 도메인도..