2015-10-16 8 views
0

Я все еще изучаю Java/Android, и я начал свой самый большой проект. В этом проекте у меня есть класс, который я создал для очистки моего кода. Он содержит множество методов. Даже это, однако, слишком захламлено, и я ищу идеи организации. Мой текущий план состоит в том, чтобы разделить его на категории и иметь каждую категорию в качестве подкласса. Поэтому мне нужно только получить доступ к первому классу, и он должен предоставить доступ ко всем моим методам. Это ужасная идея? Есть ли лучший способ организовать это на Java? В C++ я бы просто создал разные файлы для организации разных методов, но, насколько я понимаю в Java, методы должны содержаться в классах (или действиях в случае Android). Я здесь отсюда?Методы Java: организационные советы?

+1

Не могу ответить, не зная, что делают эти классы. Вы, наверное, не знаете, потому что вы учитесь. Принять это. Делайте то, что считаете лучшим, посмотрите, работает ли оно, и измените его, если это не так. – duffymo

+0

Один ответ: выберите «Чистый код» Роберта «Дядя Боб» Мартин из интернетов; и прочитайте его со страницы 1 до конца. В самом деле. Это ответит на ваш вопрос; и научить вас многого для будущего. – GhostCat

+0

Я не понимаю, что делает класс, который «очищает» ваш код. – duffymo

ответ

1

У вас есть один класс, который имеет слишком много обязанностей. Это обычная проблема, и есть официальное название для решения: Извлечение класса.

Вот как refactoring.com описывает «класс экстракта» рефакторинг:

Создать новый класс и переместить соответствующие поля и методы из старого класса в новый класс.

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

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

+0

Благодарим вас за этот ответ. Он осторожно указал на проблему с тем, как я думал об этом. – jagrakye

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

  • Нет связанных вопросов^_^