Protocol 3

POP(Protocol Oriented Programming) vs OOP(Object Oriented Programming)

POP와 OOP의 가장 큰 차이점은 클래스들이 수직적인 구성이나 수평적인 구성으로 이루어져 있다는 것이다. POP(Protocol Oriented Programming) POP는 필요한 부분만 프로토콜로 분리해서 만들 수 있고 다중 프로토콜을 구현할 수 있다. 프로토콜 규칙을 class, struct, enum에 적용할 수 있기 때문에 확장 부분에서도 OOP보다 유연하다. POP는 HAS-A 관계로 구성되어 있어 수평적인 구조로서 묘사할 수 있다. 예를 들어 강아지의 특성을 구현한다면 protocol Eatable{ func eat() } extension Eatable{ func eat(){ print("I can Eat") } } protocol EatAlot{ func eatAlot() } exte..

iOS/Swift 상식 2023.02.21

Delegate 패턴 알아보기

Delegate라는 단어를 처음 만나면 되게 생소하다. Delegate는 대신해서 움직여주는 역할이다. protocol을 이용하여 다른 클래스에게 권한을 위임할 수 있다. (protocol은 내부에 method, property를 선언하고 protocol을 상속받는 곳에서 protocol stubs를 사용할 수 있다.) 아무튼 delegate는 구성해 놓은 작업들을 대신해 주는 역할이다. 한 줄로 끝나는 delegate지만 한 번에 이해하기 어렵다.. 쉽게 이해하기 위해서 예를 들어 살펴보자 내가 인기 있는 카페 여러 매장을 가지고 있는 사장이라고 가정해 보자. (상상만으로 즐겁네) 모든 카페에서 내가 직접 커피를 내리고 계산을 하는 것은 불가능하다. 따라서 아르바이트생이나 매니저들(대리자)을 구한 뒤 ..

iOS/Swift 상식 2023.02.04

Swift 문법과 친해지기 - protocol

프로토콜 구조체, 클래스, 열거형은 프로토콜을 채택해서 특정 기능을 실행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있다. 스스로 기능을 구현하지 않는다. 하나의 타입으로 사용되기 때문에 다음과 같은 타입에서 사용가능 하다. 함수, 메소드, 이니셜라이저의 파라미터 타입, 상수, 변수, 프로퍼티 타입, 배열, 딕셔너리 원소 타입 간단히 말해 프로토콜은 해당 기능에 필요한 요구사항을 선언해두는 것이다. 다른 언어들의 인터페이스와 비슷한 개념 같다. □ 프로토콜 예시 protocol Band{ var drum: String {get set} var vocal: String {get set} var piano: String {get set} var guitar: String {get set} func pl..

iOS/문법 2023.01.04