TIL - 2021.05.20 (Thu)
야곰캠프 방학 중 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에서는 불가하다 -> 프로토콜의 경우 컴포지션 프로토콜이 가능! (다중 상속 가능!)
Author And Source
이 문제에 관하여(TIL - 2021.05.20 (Thu)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leeyoungwoozz/TIL-2021.05.20-Thu저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)