본문 바로가기
  • (개인)정보보호/최신ICT 정보 공유 블로그
나의 서재/22. 소프트웨어 공학 기본원리

13.2 Adaptor 패턴

by 노벰버맨 2021. 12. 14.

가. 배경

-기존 클래스를 외부의 표준 클래스로 대치하는 것이 필요할 때 적용

 

나. 사용사례

-내부 기존 클래스를 외부 표준 클래스로 대치하기 위해 많은 수정 필요

-최소한의 수정을 통해 기존 인터페이스와 대치 인터페이스가 동일 기능 제공

 

다. 샘플 코드 및 클래스 다이어그램

기존 인터페이스 대체 인터페이스
public interface TaxIF {
  public void findTax( );
}
public class Tax implements TaxIF {
  public void findTax( ){

  }
}
public class TaxTest {
  static TaxIF t;
  public static void main(String[ ] args) {
    t = new Tax( );
    t.findTax( );
  }
}
public interface HSTaxIF {
  public void getTax( );
}
public class HSTax implements HSTaxIF {
  public void getTax( ){

  }
}
public class TaxTest {
  static HSTaxIF t;
  public static void main(String[ ] args) {
    t = new HSTax( );
    t.getTax( );
  }
}
Adaptor 패턴 적용 코드
public interface TaxIF {
  public void findTax( );
}
public class Tax implements TaxIF {
  public void findTax( ){
  }
}public interface HSTaxIF {
  public void getTax( );
}
public class HSTax implements HSTaxIF {
  public void getTax( ){
  }
}
public class HSTaxAdaptor implements TaxIF {
  public HSTaxIF hs_tax;
  public HSTaxAdaptor(HSTaxIF hs_tax) {
      this.hs_tax = hs_tax;
  }
  public void findTax( ) {
      hs_tax.getTax( );
  }
}
public class TaxTest {
  static TaxIF t;
  public static void main(String[ ] args) {
    HSTaxIF ht = new HSTax( );
    t = new HSTaxAdaptor(ht);
    t.findTax( );
  }
}

-클라이언트 객체 TaxTest는 Adaptor 객체에게 기존 인터페이스 메소드 findTax( )를 통해 요청

-Adaptor 객체는 해당 요청을 대체 클래스의 적절한 계산 메소드 getTax( )로 바꾼다.

'나의 서재 > 22. 소프트웨어 공학 기본원리' 카테고리의 다른 글

14. 모듈 설계  (0) 2021.12.18
13.3 Template Method 패턴  (0) 2021.12.15
13.1 Singleton 패턴  (0) 2021.12.14
13. 설계 패턴  (0) 2021.12.14
12. 객체지향 설계 방법  (0) 2021.12.12

댓글