Подтвердить что ты не робот

Сколько объектов слишком много?

При разработке приложения возникает ли точка, в которой у вас слишком много объектов? Как вы определяете, когда вы пересекли линию детализации в своей объектной модели?

4b9b3361

Ответ 1

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

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

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

Управление крупным программным проектом - это то, что нужно раскалывать вещи на управляемые части и правильно маркировать их. Если вы это сделаете, количество типов становится менее важным в моем опыте.

Ответ 2

В тот момент, когда вы задаетесь вопросом: "Почему, черт возьми, это объект?"

Недавно у меня был класс "BetForgetter", который я реорганизовал в 2 строки кода в другом классе.

Ответ 3

Это возможно, симптом другой проблемы.

IMHO. Пока у вас есть хороший проект, пространство имен и/или организация каталогов, а также разумное соглашение об именах, вы должны иметь возможность обрабатывать любое количество классов easilly.

PS-Я предполагаю, что вы имели в виду "классы", когда говорили "объекты".

Ответ 4

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

Ответ 5

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

Ответ 6

Не только со слишком большим количеством объектов, но и со слишком большой сложностью, я обнаруживаю, что когда я потерял чтение своего кода после одного выходного дня, я обнаружил.

Ответ 7

Я бы сказал, что вам, вероятно, следует больше беспокоиться о том, что у вас слишком мало объектов/классов. SRP - это то, что стоит соблюдать, поскольку оно обычно приводит к более чистым и понятным кодам.

Ответ 8

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

Это зависит от проблемы, которую вы пытаетесь решить с помощью вашего приложения.

Iraimbilanja абсолютно прав. Если вы начнете создавать объекты для всего, что пересекает ваш путь, вам скоро будет интересно, какое использование вы можете им дать, и почему, черт возьми, вы тратите время на их создание.

Ответ 9

У вас никогда их не будет, спросите любого достойного Java-программиста.

Ответ 10

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

Ответ 11

Как долго длится строка? (в два раза больше от середины до конца, но это рядом с точкой)

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

Если у вас есть 100 различных типов объектов Bird, все из которых реализуют интерфейс, а общие методы - в абстрактном классе, то у вас не слишком много объектов, потому что, возможно, вам нужно, чтобы каждая птица действовала по-разному.

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

Аналогично, если у вас есть один огромный класс, который содержит много разрозненных функций, то у вас слишком мало классов.

Если у вас есть классы, которые делают то же самое или реплицируют то, что уже делают другие классы в рамках, вы в порядке.

И помните, только потому, что вы можете использовать наследование, это не значит, что вам нужно, состав часто лучше.