2014-02-11 4 views
0

В настоящее время я изучаю связь и зависимости в Java. Я читал this tutorial и понимаю, что если класс1 содержит экземпляр класса2, и если вы вызываете метод типа exampleMethod(c2), это считается зависимостью между классами 1 и классом2. Однако я не уверен в примерах ниже. Может ли кто-нибудь дать мне разъяснения?Объяснение связи и зависимостей

В предположении, что мы внутри class1 (который содержит class2 c2):

  1. Если class1 вызывает метод, определенный в class2 (c2.aMethod(), например), делает этот подсчет в качестве зависимостей/связи между class1 и class2 ?

  2. Учитывается ли связь c2.someSetterMethod(argument) как зависимость/связь между классами 1 и классом2?

  3. Вызывает ли c2.repaint() класс 1 в качестве зависимости?

ответ

1

Тот факт, что класс1 содержит ссылку на экземпляр класса 2, достаточно сказать, что класс1 зависит от от класса2. Во всех ваших трех примерах вам нужна ссылка на класс2, чтобы вызвать его методы. Это только увеличивает необходимость зависимости в вашем классе1, но не сама зависимость.

Пожалуйста, прочтите http://depfind.sourceforge.net/Manual.html#Dependencies, как указано в ответе на предыдущий вопрос: https://stackoverflow.com/a/21689495/1659599.

0
  1. Да.
  2. Да.
  3. Да.

Одним из способов уменьшения связи является использование интерфейсов. Таким образом, класс 1 знает только об интерфейсе и не связан с классом 2 конкретно. И фактически любой класс, который реализует интерфейс, может использоваться вместо класса 2, а класс 1 все равно будет удовлетворен.

 Смежные вопросы

  • Нет связанных вопросов^_^