[Spring] 느슨한 결합이란?

호두마루·2023년 10월 8일
0

Spring

목록 보기
4/17

Loose Coupling(느슨한 결합)이 필요한 이유?

Tightly Coupling(강한 결합)은 코드 상에서 때때로 많은 수정 작업을 필요로 한다.

하나의 대표 클래스에 여러개의 클래스 세트가 의존성을 가지고 있다고 생각해보자.
만약 사용하고 싶은 클래스가 바뀐다면?
강한 결합에서는 사용하고 싶은 클래스 세트가 바뀔 때마다 대표 클래스의 코드를 하나하나 수정해주어야 한다.
이는 굉장히 굉장히 귀찮은 작업이다.

따라서 느슨한 결합을 통해 클래스를 수정하지 않아도 되게끔 만들어 줄 수 있다.
이를 위해서 프로젝트에 인터페이스를 만들어주었다.

인터페이스란?
특정 클래스 세트에서 수행하는 공통된 작업


1. 인터페이스 만들기

기존에 작업하던 spring 프로젝트를 열어준다.

new > interface 클릭
이때, 인터페이스는 하나로 묶을 클래스 세트들과 같은 package상에 위치해야함을 주의하자


그리고 각 클래스에 있는 공통된 이름의 메소드를 인터페이스에 작성해준다.
이렇게 하면 인터페이스 만들기는 완료!
코드가 간단하기 때문에 어렵지 않은 작업이다

2. 인터페이스 적용하기

만든 인터페이스를 클래스에 적용시킬 차례이다.


public class 클래스명 implements 인터페이스명 { }
의 형식으로 작성해주면 클래스에 만든 인터페이스가 도입된다.
모든 클래스 세트에 작성해주기!


그리고 클래스 세트들이 의존하고 있던 대표 클래스에도 인터페이스를 도입해주어 느슨한 결합을 만든다.

  private SuperContraGame game;

  public GameRunner(SuperContraGame game) {

클래스 세트 중 하나인 SuperContraGame()가 적혀있던 이 부분을

  private GamingConsole game;

  public GameRunner(GamingConsole game) {

인터페이스 GamingConosole로 변경

이 부분이 필요할 때마다 다른 클래스 세트로 변경해주던 파트이다.
인터페이스를 도입하면서 귀찮은 작업을 하나하나 하지 않아도 된다



변수만 수정해주면 바로 결과값을 출력할 수 있게 되었다.
이렇게 인터페이스를 도입함으로써 느슨한 결합이 사용되었고 코드의 유지보수가 훨씬 간단해졌다!

0개의 댓글