Организация кода в классах? - PullRequest
0 голосов
/ 27 января 2012

Я кодирую плагины для популярного Bukkit API для Minecraft.

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

С точки зрения кодирования, как мне поступить?Буду ли я импортировать каждый класс?

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

Ответы [ 3 ]

1 голос
/ 27 января 2012

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

0 голосов
/ 27 января 2012

С точки зрения кодирования, как бы я поступил так?

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

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

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

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

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

import static java.lang.Math.*;

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

double r = cos(PI);

вместо

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

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

0 голосов
/ 27 января 2012

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

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