РЕДАКТИРОВАТЬ: мне предложили реализовать шаблон стратегии (http://en.wikipedia.org/wiki/Strategy_pattern),, который, я думаю, я бы сделал как несколько объектов, реализующих протокол делегата в Objective-C. Это завершает инкапсуляцию I хочу, но при этом позволяю мне иметь общий контроллер вида в памяти.
У меня есть класс DetailViewController, который отображает информацию о различных типах данных - путевые точки, маршруты, карты, фотографии.
Прямо сейчас этот класс имеет длину 1400 строк и имеет несколько беспорядочных операторов переключения. Например:
- (void) changeMiniView:(id)sender {
if (self.track) {
[self changeTrackMiniView:[sender selectedSegmentIndex]];
} else if (self.waypoint) {
[self changeWaypointMiniView:[sender selectedSegmentIndex]];
} else if (self.photo) {
[self changePhotoMiniView:[sender selectedSegmentIndex]];
} else if (self.map) {
[self changeMapMiniView:[sender selectedSegmentIndex]];
}
}
Это было бы намного лучше, если бы я создал подклассы DetailViewController, но моя загадка состоит в том, что я хотел бы сохранить viewController в памяти и просто изменить некоторые элементы, чтобы у меня были четкие переходы, особенно на телефонах 3G.
Я чувствую, что если я хочу, чтобы мой код был аккуратным, я должен получить удар по производительности.