2012-01-26 12 views
0

Я плагины кода для популярного API Bukkit для Minecraft.Организация кода в классах?

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

В кодировке, как бы я это сделал? Я бы импортировал каждый класс?

Я заметил, что при доступе к переменным из другого класса я должен выполнять: ClassName.variable каждый раз, и это немного перетаскивает. Есть ли способ обойти это?

+0

Программа для интерфейсов. Нет, действительно.Затем заставьте каждый интерфейс сказать, что он делает - он должен сделать ОДНУ вещь, а затем составить интерфейсы в конкретные типы (классы). Простое разделение на документированный интерфейс дает хороший способ показать, КАК его можно разделить. Клянусь, что подтипирование существует на Java только как средство «совместного использования» :( –

+0

Если вам даже нужно спросить об этом, я не думаю, что вы поняли, что означает ООП: http://en.wikipedia.org/wiki/Object-oriented_programming –

ответ

1

Я не поклонник Java, но эта проблема заключается не в том, чтобы быть Java n00b. Речь идет о том, чтобы быть новичком в объектно-ориентированном дизайне (вы столкнулись с этой проблемой с большими программами на любом языке, если вы хорошо их организуете).

Вы, как правило, захотите следовать за "Single Responsibility Principle". В двух словах это означает, что ваши классы, вероятно, должны быть меньше, чем сейчас, и что каждый из них должен отвечать за обработку достаточно маленькой задачи, что легко определить, правильно ли это. Это проще сказать, чем сделать, но поэтому программирование сложно: организовать ваши идеи сложно.

+0

Хорошо, теперь, как бы это реализовать, скажем: Eclipse –

+0

То же самое можно было бы реализовать в «Блокноте». Но более серьезно, Eclipse имеет инструменты для добавления новых классов, и я считаю, что он имеет рефакторинг. боитесь, что вам придется это понять. Основная идея состоит в том, чтобы выяснить, где каждый класс управляет 2+ вещами, которые могут быть разумно управляемы отдельными классами, а затем разделяют их. –

0

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

0

В кодировке, как бы я это сделал?

Определите, какие методы реализуют функциональность, которая принадлежит вместе. И реорганизуйте их в классы.

Могу ли я импортировать каждый класс?

Ваша IDE (затмение или что-то еще) сделает импорт для вас.

я заметил, когда доступ к переменным из другого класса, я должен делать: ClassName.variable каждый раз, и это немного сопротивления. Есть ли путь вокруг этого?

Сначала вы написали ClassName вместо, например, (Это означает, статический) В Java у вас есть возможность сделать статический импорт

import static java.lang.Math.*; 

после этого вы можете использовать символы в более естественным образом, как :

double r = cos(PI); 

вместо

double r = Math.cos(Math.PI); 

Но, честно говоря, я бы не рекомендовал это вообще.