Что такое контейнерные классы? - PullRequest
0 голосов
/ 04 апреля 2020

Итак, у меня есть контейнерный класс ShipStorage, который хранит объекты в массиве. У меня есть другой класс под названием FileManager, который использует объект ShipStorage. Мой профессор сказал, что контейнерные классы не должны вводить или выводить (я думаю, что это означает, что нельзя использовать System.out.println). Будет ли FileManager считаться контейнерным классом, когда он использует только объект ShipStorage?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2020

Мой профессор сказал, что классы контейнеров не должны вводиться или выводиться.

В ОО-проекте существует общий принцип, называемый Разделение проблем . Класс должен делать то, что является его "заботой", а не делать то, что не является его "заботой".

(Посудомоечная машина моет посуду. Обогрев микроволновых ужинов не имеет значения.)

В проекте, который вы реализуете, целью класса-контейнера является содержание объектов. Ввод или вывод объектов не является его задачей. Это (предположительно) относится к классу FileManager или к другому классу.

Это разумное дизайнерское решение для вашего учителя, и, вероятно, то, как я бы его разработал. В любом случае, это то, что ваш учитель сказал делать; то есть "требования". Следовательно, именно так должен работать ваш код.

(я думаю, это означает, что нельзя использовать System.out.println)

Это пример того, что ваш контейнер не должен ... в этом проекте.

Язык программирования Java не настаивает на том, чтобы приложения разрабатывались должным образом, но по мере накопления опыта вы обнаружите, что хороший дизайн имеет много преимуществ, особенно когда вы имеете дело со сложными приложениями.

0 голосов
/ 04 апреля 2020

Как следует из названия, контейнерный объект хранит коллекцию объектов (называемых его элементами), например, ArrayList - это контейнерный класс, объект которого может содержать другие объекты.

Объект-контейнер управляет пространство для хранения его элементов и обеспечивает функции-члены для доступа к ним.

...