가. 배경
-기존 클래스를 외부의 표준 클래스로 대치하는 것이 필요할 때 적용
나. 사용사례
-내부 기존 클래스를 외부 표준 클래스로 대치하기 위해 많은 수정 필요
-최소한의 수정을 통해 기존 인터페이스와 대치 인터페이스가 동일 기능 제공
다. 샘플 코드 및 클래스 다이어그램
기존 인터페이스 | 대체 인터페이스 |
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 |
댓글