일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HIG
- 리펙토링
- Refactoring
- 리펙터링
- tableView
- combine
- Protocol
- 스위프트
- SWIFT
- 리팩토링
- 클린 코드
- map
- clean architecture
- rxswift
- ribs
- UITextView
- ios
- Xcode
- Human interface guide
- swift documentation
- 애니메이션
- Clean Code
- swiftUI
- uitableview
- uiscrollview
- collectionview
- RxCocoa
- MVVM
- UICollectionView
- Observable
- Today
- Total
목록Dependency Inversion Principle (2)
김종권의 iOS 앱 개발 알아가기
0. 코드로 알아보는 SOLID - 클래스 다이어그램 필수 표현 1. 코드로 알아보는 SOLID - SRP(Single Responsibility Principle) 단일 책임 원칙 2. 코드로 알아보는 SOLID - OCP(Open Close Principle) 개방 폐쇄 원칙 3. 코드로 알아보는 SOLID - LSP(Liskov Substitution Principle) 리스코프 치환 원칙 4. 코드로 알아보는 SOLID - ISP(Interface Segregation Principle) 인터페이스 분리 원칙 5. 코드로 알아보는 SOLID - DIP(Dependency Inversion Principle, testable) 의존성 역전 원칙 6. 코드로 알아보는 SOLID - Coordinato..
DIP 소스 코드 의존성이 추상에 의존하며 구현체에는 의존하지 않는 시스템 이유: 의존한다는 것은 의존하는 대상이 변경될때 영향을 받으므로, '추상'은 '구체'보다 변화가 적기때문에 '추상'에 의존함으로서 변경에 유연한 코드를 유지하기 위함 인터페이스는 구현체보다 변동성이 낮은 점을 사용 소프트웨어 설계자는 인터페이스의 변동을 낮추고 구현체에 기능을 추가할 수 있는 방법을 찾기위해 노력 운영체제나 플랫폼 같이 안정성이 보장된 환경에 대해서는 DIP를 무시 예를 들어 자바의 String은 구체 클래스이며, String클래스가 변경되는 일이 거의 없으므로 DIP가 아니어도 안정적 Factory 아이디어: 변동성이 큰 구현체 객체를 생성할 때는 의존성을 주의하여 생성 builder 역할 구현체 객체를 사용하기..