2010-05-16 4 views
2

이것은 코드 별 질문과 Objective-C 명명 문제에 대한 질문이 적습니다. C에서는 구조체을 순수 데이터로 사용합니다. Enterprise Java에는 순수한 멤버 변수 인 getter 및 setter가 있지만 비즈니스 로직은없는 "bean"클래스가 있습니다. Adobe FLEX에는 "값 객체"가 있습니다.순수한 데이터 Objective-C 클래스의 이름이 있습니까?

Objective-C에는 단순히 ivars 및 getters/setters (또는 @ property/@ synthesize가 멋지게 보이려면 NSObject의 자손입니다) 및 no 실제 비즈니스 논리?

보다 구체적인 예는 파일 이름, 파일 크기, 설명 및 기타 여러 메타 데이터에 대한 getters 및 setter가있는 단순한 클래스 일 수 있습니다. 그런 다음 이들을 가져 와서 C 구조체의 지저분한 NSValue 줄 바꿈없이 컨테이너 (NSDictionary, NSArray)에 쉽게 넣을 수 있습니다. 또한 느슨한 형식의 자식 NSDictionaries를 부모 컨테이너 객체에 넣는 것보다 조금 더 많은 구조입니다.

답변

2

아니요, 특별한 이름이 없습니다 (최소한 아는 한). NSObject에서 상속 한 모든 Objective-C 오브젝트는 1 급 오브젝트입니다. 물론 getters와 setter로 클래스를 구현할 수도 있지만, 합성 된 속성조차도 원 자성과 메모리 관리를위한 온화한 "비즈니스 로직"을 가지고 있습니다. 원하는 경우 순수 데이터 용으로 C 구조체를 사용할 수 있습니다 (예 : Cocoa의 경우 NSRect). 그렇지만 다른 클래스 (예 : NSDictionary)와 사용하기가 더 어렵습니다.

+0

NSObject로 얻는 근본적인 "비즈니스 로직"에 대한 귀하의 요지를 봅니다. 아마도 java.lang.Object를 상속 받아 Java에서 유사한 수하물을 얻지 만 스레딩 관련 메소드가 있음에도 불구하고 순전히 데이터로 간주됩니다. – BrianEnigma

0

Objective-C에는 이러한 클래스의 공식 이름이 없습니다. 사람들은 "값 객체"나 "순수한 데이터 객체"같은 것을 참조하는 경향이 있습니다. 그러나 이들 모두는 NSValue (또는 속성 목록 값) 및 NSData 하위 클래스를 참조 할 수 있기 때문에 오버로드 된 것입니다. 후자는 그것들을 설명하는 가장 간결한 방법이라고 생각합니다.

관련 문제