PSA (서비스 추상화)

sion Jeong·2024년 6월 24일
0

PSA 정의

  • PSA는 잘만든 인터페이스다.
  • 서비스 추상화
  • 말 그대로 서비스를 추상화 해서 사용하는 것
  • 약간 코드 구현의 느낌보단 → 개념의 느낌이 크다.

사용 방법

  • 인터페이스의 역할이 → 공통된 행동을 강제하는 것 처럼
    • 서비스의 추상화의 구현은 (PSA)
      • 공통된 행동을 정의하는 서비스 인터페이스를 하나 두고
        서비스 구현체들을 막 만들어서 갈아끼우게 된다.
      • 그리고 당연히 구현체들은 메서드를 다 오버라이드로 구현해서 사용
      • 예시) 메시지 서비스 인터페이스 → 폰 메시지 구현체, 이메일 메시지 구현체

예시2 ) JPA 를 사용할때 JPA 인터페이스가 있고

  • JPA인터페이스를 구현하는 → 하이버네이트가 있고, 다른 2가지가 있다.
  • 우리는 JPA 인터페이스를 사용하기 위해서 구현체로 하이버 네이트를 사용할 수도 있고, 다른걸로 JPA를 사용할 수 있음

질문

  • 그럼 API 만들때 서비스 단에서 인터페이스를 만들고 -> 구현체 클래스들을 만들어서 갈아끼우는 것이 좋나요?
    (그러면 -> 메서드 오버라이드도 해야함)
profile
개발응애입니다.

0개의 댓글