Как структурировать и организовать вложенные классы - PullRequest
1 голос
/ 24 марта 2011

Новичок в ООП, жаждущий выучить хорошие привычки.

Я хочу сделать класс vectorMap.vectorMap будет иметь несколько свойств и будет содержать несколько polyLine объектов, которые, в свою очередь, будут иметь несколько свойств и состоят из нескольких xyPoint объектов.

Пользователь будет в основном взаимодействовать с vectorMap объектами, но иногда может захотеть использовать polyLine и xyPoint объекты вне контекста vectorMap.

Значит ли это, что я должен создать три отдельных публичных класса?Будет ли это означать три отдельных модуля классов в VBA, а в Java - три отдельных файла .java?

Моя процедурная интуиция говорит мне, что было бы неопрятно иметь три отдельных файла исходного кода для трех небольших и простых классов столько несколько строк кода каждая.Я привык к файлам исходного кода, содержащим пакеты со многими функциями.В этом случае проект VBA будет содержать десятки модулей классов.Но, возможно, именно так это и делается в ООП ...

Вышеприведенное будет реализовано в VBA и Java, поэтому любые примеры в одном или обоих из них приветствуются.

1 Ответ

0 голосов
/ 24 марта 2011

что вы имеете в виду "простые маленькие классы"?Мое мнение, вы должны использовать свежий файл для каждого класса, который можно тестировать.если (например) XyPoint - это просто касание, содержащее 2 элемента, было бы неплохо поместить его в качестве подкласса PolyLine.
Однако, насколько я понимаю, PolyLine и VectorMap должны быть в отдельных файлах, поскольку вы не можете сказать, что A важен только для B, и оба они тестируемы.
также, при использовании подклассов в java, обратите внимание на их типы (статические / нестатические, анонимные ...) и выберите мудро, что является предпочтительным.

ps в Java строго принято, что имена классов начинаются с заглавных букв.
ps2: я предполагаю, что это сделано в образовательных целях, иначе вы должны (как сказал @Ingo) использовать встроенные классы, а не изобретать велосипед ...

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