2012-03-25 2 views
1

저는 IOS의 매달 림을 얻고 다른 프레임 워크를 사용하고 있습니다. 내 프로젝트는 점점 더 복잡해지고 있으며 (물론) 복잡한 방식으로 몇 가지 일을하고 있다고 생각합니다. 이 상황을 처리 할 수있는 간단한 디자인 패턴이있는 경우내 대리인의 대리인은 ... (디자인 패턴)

궁금하네요 :

배열에서 개최 된 속성의 많은

; 각 속성에 대한 옵션을 나타내는 NSDictionaries의 NSDictionary도 보유합니다.

속성 편집기 : 자세히보기 편집 옵션을 사용하여 현재 속성을 표시하는 테이블을 제공합니다

상세보기 : 내가있어

특정 속성에 대한 모든 옵션을 표시 테이블이 지금 작업 기준 :

애플리케이션 - 액세스 속성 편집기 델에 대리인으로> 세트 자체 eGate에서는의 (앱의) 현재의 속성과 속성 옵션

속성 편집기의 배열 - 각 자세히보기에 대한 위임으로> 세트 자체는 대리자 속성 옵션의 적절한 배열을 나타내는 상세보기에 속성을 설정

자세히보기 -> 적절한 속성 옵션 배열

이것은 꽤 복잡한 것처럼 보입니다. 상세보기 위임 내 애플 리케이션? 더 명확한 디자인 패턴이 있습니까? 나는이 모든 수업들 사이에 긴밀한 연계가 있음을 알고 있지만 그것이 어떻게 피할 수있는지를 보지 못했습니다.

답변

1

모든 앱 속성에 액세스하기위한 싱글 톤 클래스를 만들지 않겠습니까 (PropertiesContainer라고 부름). 이 클래스는 필요한 사전을 보유하고 [PropertiesContainer sharedInstance]에 의해 액세스됩니다.

이렇게하면 언급 한 모든 클래스를 속성에 액세스하기 위해 각각의 클래스와 연결할 필요가 없습니다. 이제 당신은 필요할 때마다 쉽게 접근 할 수있는 하나의 수업을 갖게 될 것입니다. (누구에게 사용하는지 알 필요가 없습니다)

+0

감사합니다. 나는'sharedInstance'를 사용한 적이 한번도 없다. 그것이 내가 지금 일하고있는 bizzaro 길보다 개념적으로 더 명백 할 것 인 것처럼 들리는 소리. –

+0

여기를보세요 : http://iphone.galloway.me.uk/iphone-sdktutorials/singleton-classes/ – giorashc

+0

위대한 작품으로 보입니다!다시 고마워 –

1

MVC 패턴을 사용하면 전체 속성 트리를 보유 할 모델 개체를 만들어 각 뷰 또는 편집기와 적절한 하위 트리를 통신 할 수 있습니다.

Model 객체를 반드시 싱글 톤으로 만들 필요는 없으며, App이 정확히 하나 (또는 ​​필요한만큼)를 만들고 유지하게해야합니다.

+0

하지만 ** RootView **가 전달해야하는 동일한 상황에있을 것입니다. ** 또는 PropertyTableView B **로 보내야합니다 (또는 자신을 설정하거나 자신을 위임자로 설정해야 함). 대리인)을 ** PropertyDetailView C **로 변경하면 C는 해당 속성에 대해 사용 가능한 옵션 목록에 액세스 할 수 있습니다. 그건 내가'self.delegate.delegate.dictionaryOfOptions'로 다시 돌아 가게합니다 - 당신이 의미하는 바를 오해하지 않는 한. –

+0

모델 외부에서 속성 데이터베이스를 필터링 할 필요가없는 경우 해당 모델 개체를 모든 데이터 원본 대리인으로 만 만들면됩니다. – hotpaw2