[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24 |
#17 : description 메서드를 구현하라
인스턴스를 설명하는 유용한 문자열을 제공하려면 description 메서드를 구현하라.
객체가 출력하는 내용을 디버깅할 때 좀 더 자세해지길 원한다면 debugDescription 을 구현하라.
#18 : 가변 객체보다는 불변 객체를 사용하라
가능하다면 객체를 불변(immutable)으로 만들라.
프로퍼티를 내부에서 설정할 수 있게 하려면 클래스 확장 카테고리로 읽기 전용 속성을 읽기-쓰기로 확장하라.
가변 컬렉션을 프로퍼티로 노출하기보다는 컬렉션에 포함된 객체를 조작할 수 있는 메서드를 제공하라.
#19 : 명확하고 일관된 작명법을 사용하라
잘 맞고 올바르다고 느낄 수 있는 인터페이스를 생성하기 위해 오브젝티브-C 의 표준 작명 관례를 따르라.
메서드 이름은 간결하지만 정확하고, 문장처럼 왼쪽에서 오른쪽으로 읽을 수 있게 만들라.
타입 축약을 이용해 메서드 이름을 짓지 말라.
가장 중요한 점은 메서드 이름을 여러분의 코드 내에서나, 아니면 다른 것과 함께 사용할 때나 항상 일관되게 짓는 것이다.
#20 : 프라이빗 메서드 이름에 접두어를 사용하라
프라이빗 메서드 이름에 접두어를 붙이면 퍼블릭 메서드와 쉽게 구별할 수 있다.
메서드 접두어로 ‘_’ 를 사용하는 것은 피하라.
애플이 사용을 예약했기 때문이다.
#21 : 오브젝티브-C 에러 모델을 이해하라
전체 앱을 종료시키는 심각한 에러에 대해서만 예외를 사용하라.
심각하지 않은 에러는 에러를 처리하는 델리게이트 메서드를 제공하거나 NSError 객체를 외부 파라미터로 제공하라.
#22 : NSCopying 프로토콜을 이해하라.
객체를 복사할 필요가 있으면 NSCopying 프로토콜을 구현하라.
자신의 객체가 가변, 불변 둘 다 될 수 있으면 NSCopying 과 NSMutableCopying 프로토콜 둘 다 구현하라.
복사가 얕은 복사인지 깊은 복사인지 결정하라.
그리고 가능하다면 얕은 복사를 하라.
자신이 만든 객체가 깊은 복사가 필요하다면 깊은 복사 메서드를 추가하라.
#23 : 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라.
객체가 다른 객체에 특정 이벤트를 보내고 받을 필요가 있을 때 인터페이스(데이터를 주고 받는 규약)로 델리게이트 패턴을 사용하라.
델리게이트가 지원해야 하는 인터페이스를 정의하는 프로토콜의 메서드는 선택적 메서드로 정의하라.
객체가 다른 객체로부터 데이터를 가져와야 할 때 델리게이트 패턴을 사용하라.
이 델리게이트 패턴을 특히 ‘데이터 소스 프로토콜’ 이라고 한다.
필요하다면 프로토콜에서 어떤 메서드가 응답하는지 여부를 캐싱하기 위해 비트필드 구조체를 구현하라.
#24 : 카테고리를 사용해 클래스를 관리 가능한 다수의 조각으로 나누라.
카테고리를 사용해 클래스 구현 파일을 다수의 관리하기 좋은 조각으로 나누라.
Private 이라는 카테고리를 만들어 private 메서드의 자세한 구현을 숨기라.
'프로그래밍 놀이터 > iOS' 카테고리의 다른 글
[Effective Objective-C] #26 카테고리에는 프로퍼티를 사용하지 말라. (0) | 2017.09.10 |
---|---|
[Effective Objective-C] #25 서드 파티 클래스에는 반드시 카테고리 이름을 접두어로 붙여라 (0) | 2017.09.09 |
[Effective Objective-C] #24 카테고리를 사용해 클래스를 관리 가능한 다수의 조각으로 나누라 (0) | 2017.09.07 |
[Effective Objective-C] #23 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라 (0) | 2017.09.03 |
[Effective Objective-C] #22 NSCopying 프로토콜을 이해하라. (0) | 2017.09.02 |
댓글