2013-11-30 4 views
0

У меня есть класс, содержащий около 50 методов, которые я разделил на несколько категорий.Дизайн класса iOS

Поскольку все методы относятся к категориям, мой первоначальный класс теперь пуст.

Это плохой дизайн? Как еще я могу разделить большой класс?

+0

какие разделы вы разделили код? возможно, подклассы были бы лучшим подходом. – wattson12

+0

. Вы должны предоставить детали класса и то, что категории представляют для нас, чтобы предоставить содержательный совет. Это слишком абстрактно. – Rob

ответ

0

Если вы можете группировать свои методы в связке логических функций. Категории могут быть хорошим вариантом, потому что это помогает вам управлять своим кодом. Но если у вас нет логически связанных методов, это нехорошее решение.

0

Является ли это плохим дизайном в значительной степени субъективной темой. Это зависит от ряда факторов. Без подробностей о вашем классе трудно сказать; возможно, ваш дизайн уже «хороший». Но позвольте мне предложить другой подход, возможно, это поможет вам определить, подходит ли ваш текущий дизайн для вас:

Причина, по которой вы применили все эти методы (которые вы можете логически разделить на категории) в один класс, скорее всего, потому, что им нужен доступ к тем же данным, которые вы сохранили в своих переменных экземпляра. Если нет, вы уже можете легко разбить класс вверх.

Если все эти методы нуждаются в доступе к тем же данным, другой подход должен заключаться в создании своего рода «контекстного» объекта, с геттером и сеттерами для необходимых данных. Затем вы можете создавать классы, содержащие методы, которые у вас есть в ваших категориях, и назначать каждому один и тот же контекст.

Возможно, вам необходимо, чтобы некоторые из этих классов сразу реагировали на изменения в классе контекста. Одним из решений может быть наблюдение за ключевыми значениями.

Но будьте осторожны: наличие 10 разных классов/объектов, которые вам нужно получить доступ во все время, может быть хуже, чем наличие одного большого класса.

Смежные вопросы