2011-04-10 3 views
0

문서 기반 응용 프로그램에서 "문서 수준"클래스의 인스턴스는 해당 문서를 "인식"할 수 있습니까? 이것은 하나의 클래스 사이에 커플 링을 도입해야하는 경우입니까? 그들은 커플 링이 나쁘거나 최소화되어야한다고 말한다. 이것에 대한 당신의 생각은 무엇입니까?코드 디자인 질문 : 문서 기반 응용 프로그램의 "문서 수준 클래스"

좀 더 명확히하기 : 핵심 데이터 응용 프로그램에서, 예를 들어 모든 문서에 대해 MOC가 해당됩니다. MOC를 보유하고있는 특별한 MocController를 갖고 싶다고합시다. 이제 질문을 반복하십시오 :이 클래스의 인스턴스는 어떻게 대응하는 문서를 "인식"할 수 있습니까? 문서를 제어하는 ​​NSWindowController (또는 일부 DocumentController) 인스턴스를 가리키는 ivar을 넣어야합니까? 아니면 이러한 "문서 수준"클래스 간의 이러한 결합을 방지하는 몇 가지 더 좋은 방법이 있습니까?

+2

'문서 수준'클래스 란 무엇입니까? 어쩌면 예가 도움이 될 것입니다. –

+0

감사합니다. 나는 원래의 질문에 더 많은 설명을 추가했다. – Enchilada

답변

0

이 경우 모든 "문서 수준"개체와 "문서 루트"개체 간의 결합이 그리 나쁘지 않을 수 있습니다. 어떤면에서는 실제로 자연스러운 결합이라고 느껴집니다. 의존성 주입과 같은 것들이 과잉 공격 일 수 있습니다.

위의 예제를 사용하면 WindowController ("문서 루트"개체 및 문서의 NIB 소유자)는 MocController (및 다른 "문서 수준 개체" NIB에서 인스턴스화 된) 필요성을 충족시키고, 후자는 전자로의 출구를 포함해야한다.

이것은 내가 지금 다루는 것입니다. 그러나 이것에 대한 더 많은 생각들이 현장에 도착해야 할 경우를 대비하여 나는 여전히 하루나 이틀을 기다릴 것입니다.

1

dependency injection의 경우처럼 들릴 수 있습니다. 이러한 문서 수준 개체 중 하나를 만들 때 문서 (또는 무엇이든)에 대한 참조 정보를 제공하십시오.

+0

고마워, 내가 그것에 대해 읽을 게. 하지만이 현상이 코코아에서 무엇이라고 불리는 지 알게됩니까? 나는 "코코아 디자인 패턴"책을 가지고 있지만,이 패턴은 없습니다. 그것은 코코아 세계에서 뭔가 다른 것이라고 부를 수 있습니다. 확실하지 않다. – Enchilada

관련 문제