wannabeGPT / CS_study

0 stars 0 forks source link

어댑터 패턴 (Adapter Pattern) #68

Open KUMA93 opened 1 year ago

KUMA93 commented 1 year ago
  1. 레거시 코드를 사용하고 싶은 상황에서 새로운 인터페이스가 레거시 코드와 호환되지 않을 때
    이미 만든 것을 재사용하고자 하나 이 재사용 가능한 라이브러리를 수정할 수 없을 때
    이미 만들어진 클래스를 새로운 인터페이스(API)에 맞게 개조할 때
    소프트웨어의 구 버전과 신 버전을 공존시키고 싶을 때
    사용하면 좋은 디자인 패턴이 뭔가요?
  2. 어댑터 패턴의 구조는 어떻게 되나요?
  3. 어댑터 패턴을 사용해 보셨나요?
KUMA93 commented 1 year ago
  1. 어댑터 패턴은 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조 패턴입니다. 어댑터 패턴
  2. 어댑터 패턴은 Adaptee, Target, Adapter, client 로 구성됩니다.
    어댑터 패턴 구조 Adaptee(Service) : 어댑터 대상 객체 Target(Client Interface) : Adapter 가 구현하는 인터페이스 Adapter : Client 와 Adaptee(Service) 중간에서 호환성이 없는 둘을 연결시켜주는 역할을 담당 Client : 기존 시스템을 어댑터를 통해 이용하려는 쪽
  3. List와 Enumeration 간의 변환과 호환 작업을 해주는 Collections의 정적 메서드
    enum = Collections.enermeration(list); // list → enermeration
    ArrayList<String> list2 = Collections.list(enum) // enermeration → list

    InputStreamReader 의 BufferedReader와 System.in 사이의 어댑터 역할

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
moonstal1506 commented 1 year ago

image

핸들러 매핑을 통해서 찾은 핸들러를 실행하기 위해서는 핸들러 어댑터가 필요합니다.

차례대로 핸들러 어댑터들을 돌면서 맞는 어댑터를 찾으면 Dispatcher Servlet이 해당 어댑터의 handler를 실행합니다.