Круговые зависимости считаются плохим дизайном? - PullRequest
6 голосов
/ 07 февраля 2012

В своей работе (это 90% Java, но я уверен, что этот вопрос относится к другим языкам), я часто создаю два класса, которые «знают» друг о друге. Более конкретно, класс A импортирует B, а класс B импортирует класс A, и оба имеют член или локальные переменные другого типа.

Это считается плохим дизайном? Анти-шаблон, если вы будете?

Ответы [ 2 ]

5 голосов
/ 07 февраля 2012

Вот мое мнение:

  • Если два класса принадлежат одному и тому же логическому модулю, то, вероятно, все в порядке (конечно же, это все еще суждение, с большим количеством серых областей).
  • Меньше, если два класса принадлежат разным модулям.Это создает круговую зависимость между модулями.Я стараюсь избегать этого как можно больше, предпочитая четкую иерархическую структуру.
1 голос
/ 07 февраля 2012

Да, это плохой дизайн, это противоречит принципам oop. Кажется, вам нужно создать новый класс или интерфейс, который будет содержать общие параметры и функции для a и b, a и b импортирует этот новый класс ...

...