Слабая связь и жесткая связь в Java: разница между слабой связью и жесткой связью

Опубликовано: 2021-05-02

Оглавление

Введение

Java — это объектно-ориентированный язык программирования, использующий классы и объекты. Связывание играет жизненно важную роль в Java, если вы работаете с классами и объектами в языке Java. Связывание относится к степени знания одного элемента в Java о другом элементе. Это степень использования одного класса другим классом. Эта статья даст вам глубокое понимание связанности в Java , ее типов с примерами.

Что такое соединение в Java?

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

Какие бывают типы сцепления?

Связывание в Java бывает двух типов.

Слабая связь в Java

Когда два класса, модуля или компонента мало зависят друг от друга, в Java это называется слабой связью . Слабая связанность в Java означает, что классы независимы друг от друга. Единственное знание, которое один класс имеет о другом классе, — это то, что другой класс предоставил через свои интерфейсы в слабой связи. Если ситуация требует использования объектов извне, она называется ситуацией слабой связи .

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

Пример 1: Представьте, что вы создали в своей программе два класса, A и B. Класс A называется объемом, а класс B оценивает объем цилиндра. Если вы меняете том класса A, то вы не обязаны менять класс B. В Java это называется слабой связью . Когда класс A требует изменений в классе B, возникает тесная связь.

Код

свободная муфта пакета;

класс Объем {

public static void main(String args[]) {

Цилиндр b = новый цилиндр (25, 25, 25);

System.out.println(b.getVolume());

}

}

конечный класс Цилиндр {

частный внутренний объем;

Цилиндр (целая длина, целая ширина, целая высота) {

this.volume = длина * ширина * высота;

}

публичный интервал getVolume () {

объем возврата;

}

}

Объяснение: В приведенном выше примере класс A и класс B слабо связаны.

Пример 2

импортировать java.io.IOException;

интерфейс Еда {

публичный дисплей пустоты();

}

класс итальянский {

Еда с;

общедоступный итальянский (еда) {

это.с = с;

}

публичный недействительный дисплей () {

System.out.println("Итальянский");

с.дисплей();

}

}

класс китайский реализует еду {

общедоступный китайский(){}

публичный недействительный дисплей () {

System.out.println("Китайский");

}

}

класс Mexican реализует Food {

общественный мексиканский () {}

публичный недействительный дисплей () {

System.out.println («Мексиканец»);

}

}

открытый класс Тест {

public static void main(String args[]) выдает IOException {

Еда b = новый китайский();

Еда c = новый мексиканский();

Итальянский а = новый итальянский (б);

//a.display() будет печатать на итальянском и китайском языках

а.дисплей();

Итальянский a1 = новый итальянский (c);

//a.display() напечатает итальянский и мексиканский языки

а1.дисплей();

}

}

Выход

итальянский

китайский язык

итальянский

мексиканский

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

Получите диплом инженера-программиста онлайн в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Тесная связь

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

Пример: Представьте, что вы создали в своей программе два класса A и B. Класс A называется объемом, а класс B оценивает объем цилиндра. Если вы сделаете какие-либо изменения в объеме, то такие же изменения отразятся и в классе B. Следовательно, мы можем сказать, что оба класса сильно зависят друг от друга и тесно связаны.

Код

упаковка герметичная;

класс Объем {

public static void main(String args[]) {

Цилиндр b = новый цилиндр (15, 15, 15);

System.out.println(b.volume);

}}

класс Цилиндр {

общедоступный объем;

Цилиндр (целая длина, целая ширина, целая высота) {

this.volume = длина * ширина * высота; }}

Выход

3375

Объяснение: В приведенном выше примере класс A и класс B связаны вместе и работают друг с другом как одна команда.

Различия между слабой связью и жесткой связью

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

Слабая связь Тесная связь
Объекты независимы друг от друга. Один объект зависит от другого объекта для выполнения задачи.
Лучшая тестируемость Тестируемость не так хороша, как слабая связанность в Java .
Асинхронная связь Синхронная связь
Меньше координации. Переключить код между двумя классами непросто. Обеспечивает лучшую координацию. Вы можете легко обмениваться кодом между двумя объектами.
Нет концепции интерфейса Следует принципам GOF для интерфейса
Меньший поток информации Больше информации
Очень изменчивый Он не имеет возможности изменения.

Заключение

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

Если вам интересно узнать больше о разработке программного обеспечения, ознакомьтесь со статьей «Магистр компьютерных наук» от LJMU, которая предназначена для работающих профессионалов и предлагает 12+ проектов и заданий, 1-ON-1 с отраслевыми наставниками, более 500 часов обучения.

Подготовьтесь к карьере будущего

Подать заявку на получение степени магистра наук в области машинного обучения и искусственного интеллекта