일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OOP
- dip
- 책임주도설계
- 상속
- 명령-쿼리 분리
- 상속 조합 폭발적 증가
- 알고리즘
- 일관성 있는 협력
- 합성
- 추상화
- 컴파일 타임 의존성
- 행동 호환성
- 하향식 접근
- 믹스인
- '기존 설계 재사용
- 설계 재사용
- 의존성
- 오브젝트
- OCP
- 유여난 설계
- 다형성
- Apple # HIG #iOS15 #iOS14 #Human #Interface #Guidelines #Apple developer # Apple human interface guidelines
- Swift#flatMap#map#Monad#함수형 프로그래밍#Optional
- 객체지향
- 런타임 의존성
- iSP
- 유연한 설계
- 서브 타이핑
- 메서드를 통한 해결
- 객체 생성 사용 분리
- Today
- Total
목록유연한 설계 (2)
도니의 iOS 프로그래밍 세상
합성은 내부 객체의 구현이 아닌, 퍼블릭 인터페이스에 의존하기 때문에 안정적인 코드를 얻을 수 있음상속은 is-a 관계, 합성은 has-a 관계합성은 실행 시점에 동적으로 변경할 수 있기에 더욱 유연한 설계를 얻을 수 있음1. 상속으로 인한 조합의 폭발적 증가작은 기능을 조합해서 더 큰 기능을 수행하는 객체를 만들어야 할 때, 상속은 두가지 문제점을 발생하나의 기능을 추가하거나 수정하기 위해 불필요하게 많은 수의 클래스 추가 및 수정 필요모든 조합의 클래스를 만들어야 하기 때문ex.) A기능을 수행하는 객체와, B 기능을 수행하는 객체를 합성하여 C 객체를 만들때합성은 A + B의 클래스만 필요한 반면, 상속은 A*B의 객체가 필요하게 됨단일 상속만 지원하는 언어에서는 상속으로 인해 오히려 중복 코드 양..
유연하게 대응할 수 있는 설계를 만드는 원칙 중 하나인 OCP(Open-Closed Principle)에 대해 알아보자.Chap01. OCP소프트웨어 개체(클래스, 모듈, 함수)는 확장에 열려 있고, 수정에 닫혀 있어야 한다.확장에 대해 열려있다: 애플리케이션 요구 사항 변경시, 변경에 맞게 새로운 동작을 추가해서 기능을 확장할 수 있다.수정에 닫혀 있다: 기존 “코드”를 수정하지 않고, 애플리케이션 동작을 추가하거나 변경할 수 있다.이는 결국 추상화를 의미한다. 추상화 과정을 거쳐 문맥이 바뀌더라도 변하지 않는 부분만 남고, 변하는 부분은 생략된다.런타임 때 의존성이 변경되도록 구현하면 된다.결국, 문맥이 바뀌더라도 변하지 않는 부분을 추상화하고, 변하는 부분이 수정할 수 있도록 하는 것이 핵심ex. ..