TIL - 2021.05.20 (Thu)

Youngwoo Lee·2021년 6월 26일
0

TIL

목록 보기
25/29
post-thumbnail

야곰캠프 방학 중 TIL Notion -> Velog 이전하면서 복습하기

오늘의 활동 학습

POP(Protocol Oriented Programming)



상속이 가지는 문제점? 단점은?

  • 반드시 필요하지 않아도 되는 기능을 가질 수 있다

  • 상위 클래스를 변경하면 하위 클래스가 의도치 않게 전부 변경된다.

  • 다중 상속이 불가능하다

  • struct, enum의 경우 상속이 불가



POP(Protocol Oriented Programming)

프로토콜의 장점

  • 상속을 이용한 클래스 중심의 프로그래밍은 참조 추적에 비용이 발생한다 -> 값 타입의 구조체를 적극적으로 이용 가능, 비용 절약

  • 기능의 모듈화 => 클래스가 상속할 수 있어도 다중 상속을 지원하는 언어는 많지 않음

  • class, struct, enum 에 적용할 수 있기 때문에 확장 부분에서도 OOP에 비해 더 유연하다

  • 수직 구조로 확장이 가능



extension을 통한 Protocol 구체화

protocol Camper {
	func 야곰칭찬하기()
	func 삽질하기()
}

extension Camper {
	func 삽질하기() {
		print("하나둘 하나둘")
	}
}

class Person {}
class Dog {}

extension Person: Camper {
	func 야곰칭찬하기() {
		print("야곰 잘생겼네요")
	}
}

let tak = Person()
tak.삽질하기() //하나둘 하나둘

extension Dog: Camper {
	func 야곰칭찬하기() {
		print("왈왈아아왕ㄹ!!")
	}
	
	func 삽질하기() {
		print("깨개개객")
	}
}

let 두치 = Dog()
두치.야곰칭찬하기() //왈왈아아왕ㄹ!!
두치.삽질하기() //깨개개객


짚고 지나가는 면접 지식

  • 스위프트의 표준 라이브러리의 기본 타입들은 구조체로 되어 있다.

  • Foundation Framework의 최상위 클래스는 NSObject이다.

  • NSObject는 Foundation Framework내의 클래스 객체들이 가져야하는 최소한의 기능을 가지고 있다

  • 다중상속이 Swift에서는 불가하다 -> 프로토콜의 경우 컴포지션 프로토콜이 가능! (다중 상속 가능!)

profile
iOS Developer Student

0개의 댓글