2011-11-02 2 views
0

나는 보드 게임의 종류와 같은 새로운 프로젝트를 가지고 있으며 여러보기 컨트롤러가있는 스토리 보드를 사용하고 있습니다. 게임은 플레이어가 다양한 결정을 내린 다음 한 루프에서 다른 루프로 이동하기 만하면됩니다.여러 ViewController - 싱글 톤 객체를 사용해야합니까?

나는 스코어 등등 플레이어에 대한 정보를 보유하고있는 객체를 가지고 있습니다. 분명히이 객체의 인스턴스 하나만 필요합니다. 각 뷰 컨트롤러가 동일한 인스턴스에 액세스하기를 원할 때, 그것은 싱글 톤이 될까요? 나는 전에 사용 해본 적이 없으며 자주 사용량이 많다는 것을 읽었으므로 처음부터이 방법이 올바른지 확인하고 싶습니다. 많은 감사합니다.

답변

1

당신이 설명한 것은 게임 데이터와 핵심 로직을 보유하고있는 애플리케이션의 모델입니다. 컨트롤러 사이에 전달하는 것이 아니라 싱글 톤으로 만드는 이유가 있습니까?!

한 컨트롤러가 다음 컨트롤러를 호출한다고 가정하므로이 정보를 건너 뛸 수 있습니까?! 우리는 서비스 등을 위해 싱글 톤을 사용하지만 모델 데이터를 위해 사용하지는 않습니다. 그것은 우리 경험에서 실제로 싱글 포인트가 아닙니다.

+0

주제에 대해 더 읽고 나면, Apple이 "올바른"것으로 보는 것에 대한 Simon Lee의 해석이, 맞습니다. 그럼에도 불구하고 필자는 많은 경우 뷰가 있고 그들 사이에서 복잡한 움직이는 것을 얻을 수 있기 때문에이 경우에 모델에 싱글 톤을 사용하도록 유혹을 받는다. 나는 오직 하나의 싱글 톤을 사용할 것입니다 ... –

+0

다른 사람들이 다른 관점을 가지고있는 것을 볼 수 있듯이 하루의 끝에서 당신에게 효과가있는 것을 사용합니다. –

1

한 프로젝트에서 너무 많이 사용하지 않는 한 개인적으로는 아무 것도 없습니다. 다른 사람들이이 프로젝트에 다른 중재를 사용하도록 권장 할 수도 있지만,이를 위해 가십시오. 이것은 정확히 싱글 톤을 사용하는 것입니다.

+1

동의합니다. 싱글 톤은 조금도 사람을 해치지 않습니다. :) – Simon

+0

나는 동의하지 않는다. 이것은 모델이다. 싱글 톤은 실제로 서비스 같은 것들을위한 것이고,이 경우 모델은 싱글 톤 서비스에 의해 관리되거나 컨트롤러간에 실제로 전달되어야한다. 그 모델 자체는 제 생각에 있어서는 안됩니다. –

+0

나는 그것에 동의해야 할 것입니다. 나는 너가 책에 너무 많이 집착하려고한다고 생각해. 이 경우, 싱글 톤 모델 객체는 상당히 잘 작동하고 복잡한 레이어를 제거합니다. – FeifanZ

0

싱글 톤은 라이브러리 구성 요소, 대형 서버 프로젝트 또는 단위 테스트 용으로 개발할 때 좋지 않을 수 있습니다. 그러나 당신이 아이폰 게임을하고 있기 때문에 그것에 대해 무서워하지 마라. 싱글 톤을 사용하는 것이 더 쉽고 빠를 것이다.

단위 테스트가 걱정된다면 objetive-c는 늦게 처리되고 생성자 대신 factoryton 메소드를 사용하기 때문에 단위 테스트를위한 싱글 톤을 어쨌든 변경할 수 있습니다.