일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 의존성
- 상속
- 알고리즘
- 설계 재사용
- '기존 설계 재사용
- 런타임 의존성
- OCP
- 합성
- 다형성
- dip
- 객체 생성 사용 분리
- Swift#flatMap#map#Monad#함수형 프로그래밍#Optional
- 믹스인
- 서브 타이핑
- 하향식 접근
- 메서드를 통한 해결
- Apple # HIG #iOS15 #iOS14 #Human #Interface #Guidelines #Apple developer # Apple human interface guidelines
- 책임주도설계
- 유여난 설계
- 유연한 설계
- OOP
- 추상화
- 객체지향
- 컴파일 타임 의존성
- iSP
- 명령-쿼리 분리
- 상속 조합 폭발적 증가
- 오브젝트
- 일관성 있는 협력
- 행동 호환성
Archives
- Today
- Total
도니의 iOS 프로그래밍 세상
[오브젝트 2회독] 1장 - 객체 설계 본문
들어가기 전
- 패러다임(paradigm)은 특정 학문, 분야, 또는 시스템에서 특정한 시각이나 접근 방식
- 그중 프로그래밍 패러다임은, 프로그래밍에서 쓰일수 있는 유용한 방법론들의 모음이라고 생각함
- 객체지향 패러다임, 함수형 패러다임, 절차형 패러다임등 다양한 패러다임을 배우고 이를 적용하는게 가장 좋은듯
- 실제로 객체지향 패러다임에, 함수형을 적절하게 섞어 더욱 가독성 있고 이해하기 쉬운 코드를 짤수 있는 것 처럼!
티켓 판매 어플리케이션 구현
기존 설계 방식
- 커플링이 굉장히 심한 구조
- Theater(클래스)외에 다른 세가지 클래스가 데이터만 갖고 있는 형태
- 절차 지향적 방식이라는 말은 이해하지 못했으나, 결국 클래스의 ㅛ책임이 한쪽에 집중된 구조
- 캡슐화없이 Theater가 클래스의 모든 데이터 구조 및 함수를 알고 있는 구조
개선 설계 방식
- 각 클래스별 책임 분리
- 사용자
- 사용자는 금액등 데이터를 가짐
- 해당 데이터를 통해 티켓판매소, 극장등에 메세지를 통해 필요한 동작을 요청
- 티켓 판매소
- 금액을 요청받으면, 필요한 티켓을 전달
- 극장
- 티켓을 받으면, 영화관에 입장시킴
- 사용자
- 티켓 판매소 ↔ 극장간 의존성 분리
결론
- 클래스를 생성할 때, 한 클래스에 책임이 너무 많아선 안됨
- 커플링이 심한 구조에서는 변경에 취약함
'OOP' 카테고리의 다른 글
[오브젝트 2회독] 3장 - 역할, 책임, 협력 (1) | 2024.09.15 |
---|---|
[오브젝트 2회독] 2장 - 객체지향 프로그래밍 (3) | 2024.09.08 |
[오브젝트] 15장 - 디자인 패턴 / 프레임워크 (1) | 2024.07.21 |
[오브젝트] 14장 - 일관성 있는 협력 (0) | 2024.07.21 |
[오브젝트] 13장 - 서브 클래싱 및 서브 타이핑(2) (1) | 2024.07.21 |
Comments