거대한 코드 덩어리를 서로 공유하는 여러 클래스 (컨트롤러)가 있습니다. 이 코드 조각을 어떻게 제외 할 수 있습니까? 이 코드는 프로토콜에 속하는 몇 가지 메소드입니다. 즉, 모든 컨트롤러는이 프로토콜과 관련하여 동일한 방식으로 작동합니다. 그들은 이미 다른 컨트롤러의 하위 클래스이기 때문에 같은 부모의 하위 클래스로 만들 수 없습니다.Obj-C의 다른 클래스에서 코드를 재사용하는 가장 좋은 방법은 무엇입니까?
1
A
답변
3
집계 사용 :) 프로토콜을 준수하는 단일 재사용 가능한 클래스를 작성하고 위임하십시오.
0
당신은 종류의 다중 상속이가
1
이 일반적인 컨트롤러의 모든 클래스가 상속되는 추상 슈퍼 클래스 확인에 대한 그들 ... 프로토콜을 구현하는 몇 가지 슈퍼 클래스에서 "상속"http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html 회담 할 수 있습니다. 그 추상 수퍼는 필요한 프로토콜을 구현할 수 있으며 상대적으로 일반적인 또는 매우 특정한 하위 또는 하위 하위 클래스가 재정의 할 수 있습니다.
iPhone SDK의 다양한보기/응답기를 고려하십시오.
UIResponder 클래스는 이벤트 처리 기능을 제공합니다.
드로잉 기능을 추가하는 UIView 하위 클래스.
UIControl 하위 클래스 UIView는 동작과 같은 다양한 컨트롤을 추가합니다.
UIButton, UITextField, UISlider 등이 있습니다. 모두 UIControl의 서브 클래스가 특정 기능을 추가합니다.
주의 깊게 살펴보면 NSCoding (및 NSObject) 프로토콜은 계층 구조의 다양한 클래스에서 지원되는 것으로 선언되며 필요한 경우보다 구체적인 하위 클래스가 우선 적용됩니다.
1
공통 수퍼 클래스 (필요한 경우 NSObject)에 범주를 추가하십시오.
관련 문제
- 1. Xcode & iPhone - 여러 프로젝트에서 코드를 재사용하는 가장 좋은 방법은 무엇입니까?
- 2. 배열에서 요소를 재사용하는 가장 좋은 방법은 무엇입니까?
- 3. Eclipse에서 다른 Java 프로젝트의 클래스를 재사용하는 가장 좋은 방법은 무엇입니까?
- 4. 나중에 다른 테스트 클래스에서 동일한 세션을 인증하고 재사용하는 방법은 무엇입니까?
- 5. 라이브러리 코드를 만드는 가장 좋은 방법
- 6. 다중 상속이 옵션이 아닌 경우 코드를 재사용하는 방법은 무엇입니까?
- 7. 코드를 원격으로 업데이트하는 가장 좋은 방법은 무엇입니까?
- 8. 서버간에 코드를 배포하는 가장 좋은 방법은 무엇입니까?
- 9. Perl 코드를 문서화하는 가장 좋은 방법은 무엇입니까?
- 10. 동일한 변수를 다른 유형으로 재사용하는 방법은 무엇입니까?
- 11. 난류를 재사용하는 방법은 무엇입니까?
- 12. 다른 클래스에서 MainPage 요소에 액세스하는 방법은 무엇입니까?
- 13. 안드로이드에서 바닥 글 메뉴를 재사용하는 가장 좋은 방법
- 14. dotnet 클래스에서 xsd xml-scheme을 생성하는 가장 좋은 방법은 무엇입니까?
- 15. 가장 좋은 방법은 완전히 다른
- 16. WPF와 Silverlight간에 코드를 공유하는 가장 좋은 방법은
- 17. PHP에서 가장 좋은 방법은 무엇입니까?
- 18. ASP.Net의 SSL 페이지 리디렉션 코드를 작성하는 가장 좋은 방법은 무엇입니까
- 19. 이식성있는 Scheme 코드를 작성하는 가장 좋은 방법은 무엇입니까?
- 20. jQuery에서 이벤트와 코드를 연결하는 가장 좋은 방법은 무엇입니까?
- 21. 인터넷을 통해 코드를 실행하는 가장 좋은 방법은
- 22. 웹 서비스를 다른 장소로 옮길 때 스텁을 재사용하는 방법은 무엇입니까?
- 23. iPhone의 C++에서 유니 코드를 사용하는 가장 좋은 방법은 무엇입니까?
- 24. 오프라인과 도서 모두에서 소스 코드를 제시하는 가장 좋은 방법은 무엇입니까?
- 25. 예외를 던져서 부울을 반환하는 코드를 재사용하는 방법은 무엇입니까?
- 26. 엔진 별 CFML 코드를 작성하는 가장 좋은 방법은 무엇입니까?
- 27. 응용 프로그램에서 데드 코드를 제거하는 가장 좋은 방법은 무엇입니까?
- 28. Java에서 스레드를 실행하는 가장 좋은 방법은 무엇입니까?
- 29. 파일 버전 이전 코드를 구성하는 가장 좋은 방법은 무엇입니까?
- 30. C를 사용하여 다른 클래스에서 변수를 설정하는 가장 효율적인 방법은 무엇입니까
+1 - 이것은 위임과 정확히 일치합니다. –
전적으로 아닙니다. 위임은 제어 결정을 한 곳 또는 클래스 계층 외부의 어떤 곳에 집중하고자 할 때 사용됩니다. 질문이 읽을 때, 이것은 똑바로 상속으로 해결 될 것 같아 보인다. – bbum