프로토콜지향 프로그래밍 POP(Protocol Oriented Programming)
- 프로토콜 중심의 프로그래밍으로 확장을 통한 수평 구조로 타입을 확장하는 방식으로 다형성을 구현한다
- 프로토콜에 정의된 인터페이스를 직접 구현하기 때문에 필요치 않은 프로퍼티나 메서드를 구현하지 않을 수 있다.
- 참조, 값타입을 모두 지원하며 상속의 경우 하나의 슈퍼클래스를 상속할 수 있지만 프로토콜의 경우 다양한 프로토콜을 채택할 수 있다.
객체지향 프로그래밍 OOP(Obeject Oriented Programming)
- 객체 중심 프로그래밍으로서 슈퍼클래스의 상속을 통하여 수직구조로 타입을 확장하는 방식의 다형성 구현한다.
- 객체 지향적으로 아래에서 부터 위로 접근하는 상향식 접근 구조이다.
- 함수나 생성자, 연산자를 오버로드 할 수 있고 상속이 가능하다.
POP와 OOP의 차이
Protocol Oriented Programming은 프로토콜 중심 프로그래밍프로그래밍이며 Object Oriented Programming은 객체 중심 프로그래밍 기법이다.
POP는 프로토콜 확장을 통하여 수평 구조로 타입을 확장하고, OOP는 슈퍼클래스의 상속을 통하여 수직 구조로 타입을 확장하는 방식으로 다형성을 구현한다.