Как я должен обрабатывать основные функции в ООП? - PullRequest
0 голосов
/ 12 июня 2018

В программе ООП, куда бы я поместил функции для базовых операций?

Например, если бы у меня был класс, который в одной из функций нуждался в коде, который мог бы инвертировать массив, я мог бы просто сделатьметод с именем invertArray() внутри класса.

С другой стороны, я мог бы создать совершенно новый класс Functions, в который мог бы вывести все эти базовые функции, такие как инвертирование массива.Однако при таком подходе мне пришлось бы создавать экземпляр этого класса практически во всех других классах, которые я использую.Кроме того, на самом деле это не «объект», а скорее конгломерат функций, которые нигде не принадлежат, что отрицательно сказывается на цели «объектно-ориентированного» программирования.

Какая реализациялучше?Есть ли лучшая реализация, которую я должен использовать?

Заранее спасибо.

Редактировать: Должен ли этот вид поста даже принадлежать переполнению стека?Если нет, не могли бы вы привести меня к более подходящему сайту Stack Exchange?Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

В соответствии с вашим вопросом относительно Java:

, если бы у меня был класс, для которого в одной из функций требовался код, который мог бы инвертировать массив, я мог бы просто создать метод, называемый invertArray ()внутри класса.

Тогда да, вы можете сделать это, но если вы хотите реализовать концепцию OOPS в Java, вы также можете сделать:

Я мог бы создатьсовершенно новый класс функций, где я мог бы сбросить все эти основные функции, такие как инвертирование массива в.

Для этой части:

Я должен был бы создать экземпляр этого класса довольнопочти все остальные классы, которые я использую.

Вы также можете создать интерфейс, так как Java предоставляет вам эту функциональность, где вы можете просто объявить свои функции и предоставить их реализацию в их соответствующих классах.Это также полезно, если в случае, если вам нужны разные функции с одной и той же функцией, вы можете выбрать этот способ и вам не нужно переписывать определения функций снова и снова.

И, концепция OOPS пригодится, когда выЗаниматься большими проектами с числом классов n.Это зависит от того, изучаете ли вы или реализуете проекты.

0 голосов
/ 12 июня 2018

В зависимости от вашего языка это может зависеть от того, где вы положили вещи.

Однако, приведя ваш пример, invertArray живет в классе Array.В некоторых языках вы можете создать класс ArrayHelper или ArrayExtension.Но принцип «инвертировать» - это то, что вы хотите сказать массиву.

Обычно вы обнаружите, что все ваши функции будут жить где-то в каком-то классе, и для них будет логичное место.

Как правило, не очень хорошая идея создавать класс, содержащий смесь функций.Вы можете получить такие вещи, как «Math», которая представляет собой набор «статических» функций (они не работают с объектом), они просто выполняют некоторые вычисления с параметрами и возвращают результат.Но они все еще сгруппированы по идее, что они являются общими математическими функциями

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