일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 런타임 의존성
- 하향식 접근
- 유여난 설계
- iSP
- Swift#flatMap#map#Monad#함수형 프로그래밍#Optional
- 믹스인
- 추상화
- 합성
- 행동 호환성
- 설계 재사용
- OOP
- 의존성
- 상속 조합 폭발적 증가
- 명령-쿼리 분리
- '기존 설계 재사용
- 유연한 설계
- 메서드를 통한 해결
- 다형성
- Apple # HIG #iOS15 #iOS14 #Human #Interface #Guidelines #Apple developer # Apple human interface guidelines
- 객체지향
- 컴파일 타임 의존성
- 객체 생성 사용 분리
- 알고리즘
- 오브젝트
- 일관성 있는 협력
- dip
- 서브 타이핑
- OCP
- 상속
- 책임주도설계
- Today
- Total
목록추상화 (4)
도니의 iOS 프로그래밍 세상
1. 개방-폐쇄 원칙(OCP)OCPs/w는 확장에 열려있고, 수정에 닫혀있어야 함이는 기존 코드 수정 없이 동작이 추가되고 변경되어야 한다는 뜻추상화가 핵심이다추상화를 통해 핵심적인 부분만 의존하도록 해, 문맥이 변하더라도 바뀌지 않음문맥에 따라 적합한 기능을 구체화 하면 된다.2. 생성 사용 분리객체가 추상화만 의존하기 위해선, 추상화의 구체 클래스를 객체 내부에서 생성해서는 안됨구체 클래스를 객체가 직접 생성한다면, 기능(구체 클래스)을 변경할 때 기존 코드의 변경이 발생할 수 밖에 없고, 이는 OCP 위반그리하여 유연한 설계를 위해서는 생성과 사용이라는 책임을 두 객체로 분리 한다.Factory 추가하기생성과 사용 분리를 위해 객체 생성에 특화된 Factory를 사용3. 의존성 주입사용하는 객체가 ..
문제 해결에 필요한 핵심만 남기는 작업을 추상화이때, 큰 문제를 해결 가능한 작은 문제로 나누는 작업을 분해라고 함1. 프로시저 추상화와 데이터 추상화프로시저 추상화s/w가 무엇을 해야 하는지 추상화기능 분해(알고리즘 분해)데이터 추상화s/w가 무엇을 알아야 할지 추상화타입 추상화(abstract data type)데이터를 중심으로 프로시저를 추상화(Object-oriendted)2. 프로시저 추상화와 기능 분해전통적인 하항식 접근 방법을 따름시스템을 구성하는 가장 최상위 기능을 정의하고, 작은 하위 기능으로 분해하향식 접근 시스템의 예시직원 급여 계산 시스템(main 함수) - 전역 변수 저장 직원 기본급 정보를 얻음 - 세율을 입력받음 - 이를 통해 급여를 계산함하향식 접근의 문제점기능 추가시에 메인..
1. 영화 예매 시스템결국 프로그래밍에서 중요한 건 용어를 알맞게 정의하는 것책에서 영화 예매 프로그램을 구현하기 전, 영화와 상영의 정의를 나누고 있음우리가 일반적으로 예매하는 건, 영화가 아닌 상영(특정 시간에 상영되는 영화)영화는 단순히 실제 영화 정보를 담고 있음이게 실제 세계와 맞는지 중요하지 않고, 해당 프로그램을 만들 때 이렇게 정의한 게 중요2. 객체지향 프로그래밍을 향해객체, 클래스, 협력객체 지향 프로그래밍의 본질은 객체(not class)객체 지향에 핵심 두가지어떤 객체가 필요한가?이를통해, 해당 객체에 필요한 state(속성)과 행동(behavior)를 정의객체는 협력하는 공동체의 일원(not 독립적 존재)객체를 협력의 대상으로 봄으로써, 유연하고 확장 가능하게 만듦클래스, 도메인도..
밑의 내용은 “오브젝트” 도서를 읽고 본인이 이해한 내용을 정리한 글입니다. 실제 내용과 다를 수 있습니다. 의존성객체 지향 설계에서, 객체간 협력은 필수적이나 과도하게 많은 협력은 추후 변경을 어렵게 한다.객체간의 협력은 객체간 정보를 가지고 있어야 하며, 이는 의존성이라고 부른다.잘못된 의존성은 유연한 설계를 방해하는 요소이다.1. 의존성의 이해의존성 전이캡슐화 여부에 따라 의존성이 전이된다.ex. PeriodCondition → Screening → Movie으로 의존성 구조이때, Screening이 캡슐화를 올바르게 처리하지 않으면 PeriodCondition은 Move에 의존하는 구조를 가질 가능성이 매우 높음의존성 해결 방법객체 생성 시점에 생성자에 의존성 주입객체 생성후 의존성 주입→ 생성 ..