2014-02-10 3 views
0

이 질문은 모든 언어와 프레임 워크에 적용될 수 있지만 좀 더 '코코아 특정'을 찾고 있습니다. 나는 자바 배경에서 왔고 객관적 학습이라는 것은 구문론 이상의 의미를 지니고 있다는 것을 알게되었다. 이것은 거의 완전히 다른 사고 방식이다.코코아 응용 프로그램에서 수업 구성

내가 가장 어려움을 겪고있는 것은 반드시 수업을 구성하는 방식이어야합니다. 물론 모든 기본 OOP (Object Oriented Programming) 규칙이 적용되며 가능한 경우 MVC 패턴을 사용하는 것이 좋습니다. 하지만 Java에 익숙해 져서 몇 가지 일을 바로 설정하고 적절한 아이디어가 있는지 확인해야합니다.

그래서 간단히하기 위해 앱의 한 부분에만 집중하겠습니다. 사용자 로깅 당신은 UI (Login.xib)를위한 .xib 파일을 가질 것이고, 데이터를 처리하는 클래스 (LoginModel.m이라고 불리는 웹 서비스에 연결)를 가질 것이고 컨트롤러는 프론트 엔드와 데이터 사이의 중개자 역할을합니다 (Called LoginController.m).

이것은 MVC를 Cocoa 앱에 적용한 좋은 예입니까? 그리고 그렇다면 헤더 파일과 구현 파일이 있기 때문에 6 개의 파일이 생성 될 것입니다. 사용자를 로깅하는 것과 같이 간단한 6 가지 파일을 처리 할 수 ​​있습니다. 전체 앱, 심지어 가장 단순한 것까지도 얼마나 많은 사람이 될지 상상할 수 있습니다.

내 질문은 - 뭔가 잘못? 내가 잘못된 생각을 갖고 있니? 또는 너무 많은 파일과 너무 긴 메소드 이름의 아이디어는 내 두뇌가 여전히 '자바 모드'에서 작동하기 때문에 익숙해 져야 할 필요가 있습니다.

답변

1

위에서 설명한 내용을 처리하는 방법에 대한 아이디어는 완전히 맞습니다. 프로젝트에 많은 파일을 가지고 있다면 나쁜 점이 없습니다. 코드를 재사용하거나 예를 들어 로그인 세부 사항이 변경되어 여러 코드 위치를 편집하고 싶지 않을 때 도움이됩니다.

그럼에도 불구하고, 모델 데이터가 예를 들어 NSDictionary 등에 저장 될 수있는 경우, 모델 클래스 및 컨트롤러 클래스와 같은 간단한 경우를 결합 할 수 있습니다. 복잡한 모델 객체가있는 경우에만 코드가 많이 실행되므로 분리하는 것이 좋습니다.

변수 및 메서드 이름은 너무 길 수 없습니다. 항상 기능 또는 작업을 특히 잘 설명하는 이름을 사용하십시오. 일반적으로 자주 입력 할 필요는 없지만 Xcode 자동 완성 기능을 사용하면 쉽게 처리 할 수 ​​있습니다.

+0

답장을 보내 주셔서 감사 드리며, 이제는 제 능력에 대해 더 확신합니다. D. 현재 작업하고있는 현재 프로젝트에 사용하는 데이터는 json을 반환하는 REST 웹 서비스로 완전히 완료되며 NSDictionaries로 쉽게 파싱 할 수 있습니다. 따라서이 경우 모델과 컨트롤러를 결합 할 수 있다는 것에 동의하십니까? 또한 MVC obj-c에서 이름 지정 규칙이 사용됩니까? 예를 들어, LoginController와 LoginModel의 이름을 붙일 수 없습니다. frowned? – Tiwaz89

+1

확실히 NSDictionary에 JSON 데이터를 저장합니다. 데이터 작업에 필요한 충분한 기능을 제공합니다. 명명과 관련하여 : 클래스 이름은 괜찮지 만 접두어를 추가하는 것이 좋습니다. 예를 들어, 내 initals를 VRxxxx 또는 다른 경우 응용 프로그램 이름의 일부로 사용합니다. 내 응용 프로그램 이름 중 일부는 bcXXX로 시작하므로 프리픽스로 BC를 사용합니다. – Volker

관련 문제