Образец iPhone GLPaint имеет недостатки в архитектуре? - PullRequest
0 голосов
/ 01 ноября 2009

Я новичок в iphone dev, но знаком с моделью MVC. Может кто-нибудь объяснить, почему пример класса GLPaint PaintingView.m (View) на самом деле получает данные, необходимые с диска, чтобы написать «Shake Me!» текст? Данные являются моделью и должны считываться с диска контроллером и передаваться в представление для визуализации IMO. Правильно?

Кроме того, Контроллер добавляет элементы управления пользовательского интерфейса в представление (сегментированный элемент управления цветовой палитры) - разве представление не должно рисовать эти вещи?

Это плохой пример, предоставленный Apple?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 01 ноября 2009

Это хороший пример того, как использовать OpenGL, но это плохой пример MVC. Я полагаю, что поскольку MVC не был в центре внимания этого примера, он не был написан с учетом этого.

В конце дня, если пример работает и показывает вам, как использовать то, к чему он относится, он выполняет свою работу.

Я уверен, что есть другие примеры MVC от Apple, которые сделаны правильно.

0 голосов
/ 02 ноября 2009

Спасибо, я думаю, это что-то вроде хака, но:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW8

Объединение ролей Можно объединить роли MVC, выполняемые объектом, например, заставить объект выполнять роли контроллера и представления - в этом случае он будет называться контроллером представления. Таким же образом вы можете также иметь объекты модель-контроллер. Для некоторых приложений комбинирование таких ролей является приемлемым дизайном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...