Clean Architecture/Clean Architecture 코드
[Clean Architecture] 0. 코드로 알아보는 SOLID - 클래스 다이어그램 필수 표현
jake-kim
2021. 9. 17. 01:22
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 - Coordinator 패턴 화면전환
7. 코드로 알아보는 SOLID - Network, REST (URLSession, URLRequest, URLSessionDataTask)
8. 코드로 알아보는 SOLID - 캐싱 Disk Cache (UserDefeaults, CoreData)
사용관계 vs 상속(구현)관계
- 화살표와 닫힌 화살표로 구분

- 사용관계(의존관계)의 개념: A클래스에서 B의 흔적이 하나라도 있으면 사용관계
- A에서 B의 객체를 property로 가지고 있는 것
- A에서 B의 객체를 생성하는 부분이 존재하는 것
- A에서 메소드나 초기화에서 b를 매개변수로 받는 것
- A에서 B의 property에 접근하는 것
- A에서 B의 method에 접근하는 것
protocol C {}
class A: C {
// 사용1. B의 객체를 property로 가지고 있는 것
let b: B
// 사용2. B객체 생성
func makeB() -> B {
return B()
}
// 사용3. A클래스인데 매개변수로 b를 받는 것
init(b: B) {
self.b = b
}
func printB() {
// 사용4. B의 property에 접근
print(b.className)
}
func printBMethod() {
// 사용5. B의 메소드에 접근
print(b.printClassName())
}
}
class B {
var className = "i'm B"
func printClassName() {
print(className)
}
}
DS, I 기호
- DS: Data Structure
- I: Interface (스위프트에서의 protocol)
