카테고리
카테고리는 클래스를 수정 없이 새로운 메서드를 모든 인스턴스에 추가하는 방법입니다.
기존의 클래스 혹은 되 쓰이는 오리지날 클래스로부터 파생되는 기존의 클래스 없이 함수을 추가하길 원할 때 당신은 카테고리를 사용합니다.
NSView 객체를 코코아에서 사용한다면, NSView의 모든 인스턴스의 몇가지 동작을 수행하는 원하는 것을 발견할 수 있습니다. 명백하게, 당신은 NSView 클래스를 다시 쓸 수 없고, 그 것으로 부터 파생된다 하여도, 전부가 아닌 NSView 객체는 당신의 프로그램 형식에서 파생된 형식입니다. 당신의 프로그램을 사용하여 NSView 의 카테고리를 생성하는 것입니다. 오랫동안 당신의 카테고리에 #import 헤더 파일을 포함하고, 당신이 정의한 카테고리 소스 파일의 메서드로부터 NSView 객체의 응답처처럼 나타납니다.
프로토콜:
프로토콜은 어떤 클래스가 선택한 메서드의 모음을 구현하는 것입니다.
당신이 프로토콜을 사용할 때 클래스는 확실히 메서드의 명시된 모음에 응답하는 보증을 제공해야 합니다. 클래스는 프로토콜을 채택할 때, 프로토콜 헤더에 선언된 메서드의 모든 것을 구현하기 위해 약속한다. 이것의 의미는 다른 클래스는 사용하지 않고 그 클래스는 클래스가 아닌 다른 것은 제외하여 그 메서드를 구현할 것을 확신하게 됩니다.
이것은 공통의 “컨트롤러” 클래스와 모든 필요한 소통하는 유사한 클래스의 가족이 생성될 때 유용합니다. 소통은 컨트롤러 클래스와 컨트롤된 클래스 사이에서 하나의 프로토콜로 패키지화 되어집니다.
사이드 노트: 오브젝티브-C 에서는 다중 상속을 지원하지 않습니다 (클래스는 오직 하나의 부모클래스 클래스만 갖습니다.), 그러나 클래스는 여러가지 다른 프로토콜을 따르기 때문에 대부분 같은 함수가 프로토콜에 의해 제공됩니다.
오랜만의 번역문입니다. 국내 자료를 살피다가 제가 이해를 잘 못해 한번 찾아 봤습니다. 해석이 불안해도 참으시길…