일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OCP
- 합성
- dip
- 행동 호환성
- 객체지향
- OOP
- 일관성 있는 협력
- 메서드를 통한 해결
- 추상화
- 오브젝트
- 상속
- 컴파일 타임 의존성
- Swift#flatMap#map#Monad#함수형 프로그래밍#Optional
- 의존성
- 명령-쿼리 분리
- 런타임 의존성
- 설계 재사용
- iSP
- 객체 생성 사용 분리
- Apple # HIG #iOS15 #iOS14 #Human #Interface #Guidelines #Apple developer # Apple human interface guidelines
- 유연한 설계
- 유여난 설계
- '기존 설계 재사용
- 다형성
- 책임주도설계
- 서브 타이핑
- 알고리즘
- 하향식 접근
- 믹스인
- 상속 조합 폭발적 증가
- Today
- Total
목록dip (2)
도니의 iOS 프로그래밍 세상
상속의 두가지 용도타입 계층 구현코드 재사용1. 타입객체지향 패러다임 관점의 타입개념 관점에서 타입이란 공통의 특징을 공유하는 대상들의 분류프로그래밍 언어 관점에서 타입이란 동일한 오퍼레이션을 적용할 수 있는 인스턴스의 집합객체지향 관점에서 객체가 수신할 수 있는 메시지의 집합은 퍼블릭 인터페이스결국 같은 퍼블릭 인터페이스를 제공 한다면, 객체 지향 관점에서는 동일한 타입2. 서브클래싱과 서브타이핑언제 상속을 사용해야 하는가?is-a 관계를 만족할 때클라이언트 입장에서 부모 클래스 타입을 자식 클래스로 사용해도 무방할 때is-a 관계, 행동 호환성is-a 관계에서 만족시켜야 할 것은 직관이 아닌, 클라이언트 입장에서 대체 가능성클라이언트 입장에서 is-a 관계를 만족시킨다면 타입 계층으로 설정할 수 있음..
1. 개방-폐쇄 원칙(OCP)OCPs/w는 확장에 열려있고, 수정에 닫혀있어야 함이는 기존 코드 수정 없이 동작이 추가되고 변경되어야 한다는 뜻추상화가 핵심이다추상화를 통해 핵심적인 부분만 의존하도록 해, 문맥이 변하더라도 바뀌지 않음문맥에 따라 적합한 기능을 구체화 하면 된다.2. 생성 사용 분리객체가 추상화만 의존하기 위해선, 추상화의 구체 클래스를 객체 내부에서 생성해서는 안됨구체 클래스를 객체가 직접 생성한다면, 기능(구체 클래스)을 변경할 때 기존 코드의 변경이 발생할 수 밖에 없고, 이는 OCP 위반그리하여 유연한 설계를 위해서는 생성과 사용이라는 책임을 두 객체로 분리 한다.Factory 추가하기생성과 사용 분리를 위해 객체 생성에 특화된 Factory를 사용3. 의존성 주입사용하는 객체가 ..