[Swift] 객체지향 vs 프로토콜지향

Boogios·2023년 6월 1일
0
post-thumbnail

객체지향과 프로토콜지향의 차이점

  • 객체지향
  1. class 사용
  2. 상속을 통해 계층화 - 하나의 객체에 단일 상속만 가능
  3. override로 메소드 추가 및 대체 가능
  4. 참조 타입 (Reference Type) - 메모리 공유로 적은 메모리 사용
  5. 멀티 스레드/프로세스에 약하다는 단점이 있음
  • 프로토콜지향
  1. struct, enum 사용
  2. protocol로 동일한 속성을 부여 가능 - 하나의 객체에 여러 protocol 부여 가능함
  3. extension으로 동일한 메소드 구현 가능
  4. 값 타입 (Value Type) - 복제하기 때문에 많은 메모리 사용 -> 지연 복제로 극복 가능함
  5. 멀티 스레드/프로세스에 강점이 있음

주의할 점!!!

객체지향, 프로토콜지향 모두 만능은 아님
코드를 짤 때, 우리가 사용하는 객체가 Class 기반인지, Struct 기반인지 반드시 참고해야 함

profile
iOS Developer

0개의 댓글