2011-10-13 4 views
2

저는 Apple (ImageKitDemo)의 샘플 Cocoa 응용 프로그램을 검토 중이며 소스 파일 중 하나 (.m 파일)에 실제로 다른 클래스의 정의 (인터페이스 및 구현)가 포함되어 있음을 알았습니다. 이것을하는 것의 이점은 무엇입니까?하나의 소스 파일에 여러 클래스가있는 이유는 무엇입니까?

+4

장점은 lazier 일 수 있고 항상 다른 코드 파일간에 변경할 필요가 없다는 것입니다. 하지만 자신의 파일에 클래스를 캡슐화하는 것은 비참한 설계 결정입니다. – darvids0n

+1

클래스를 파일 계층에 반영하도록 선택하는 방법은 조직의 구현 세부 사항입니다. 가장 일반적인 접근 방식은 하나의 클래스가 하나의 .h와 하나의 .m을 의미한다는 것입니다. 그러나 조직적으로 이해한다면 원하는대로 할 수 있습니다. 때로는 예를 들어, 단순한 모델이라면 모델 개체의 집합/배열에 대한 인터페이스는 물론 특정 모델 엔티티의 인터페이스를 하나의 파일에 넣을 것입니다. 서로를 옆에 두는 것이 매우 유용하기 때문입니다 (그리고 그들은 작다). – isaac

답변

15

특정 클래스가 인 경우에만 다른 클래스의 구현 세부 사항을 제공하기 때문에 다른 곳에서 사용해서는 안된다는 사실을 강조합니다.

+0

자바에서 내부 클래스가되는 클래스와 같은 종류의 클래스에 대해서는 의미가 있습니다. 나는 개발자가 다른 파일 쌍을 만들고 싶지 않았기 때문에 클래스가 늦게 자라는 것을 보았습니다. 동일한 파일에서 둘 이상의 클래스를 결합하는 것이 클래스에서 더 좋은 해결책은 합리적으로 작은 크기의 벨트입니다. – zaph

4

프로젝트의 총 파일 수가 적습니다. 그 외에는 차이가 없습니다. 정말로 원한다면 1 .m 파일로 전체 프로젝트를 작성할 수 있습니다.

+9

그곳에갔습니다. 완전히 후회합니다. – JustSid

+12

누가 단일 파일에서 100000 줄의 코드를 스크롤하는 것을 좋아하지 않습니까? ;) – chown

관련 문제