Adaptor 패턴
개요
기존 클래스를 외부의 표준 클래스나 구매 클래스로 대치하는 것이 필요할 때 적용한다.
코드
기존 Tax 클래스의 findTax() 메소드의 기능 변경을 하기 위해
다른 인터페이스를 생성하고 적용한 코드이다.
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 TaxText {
static HSTaxIF t;
public static void main(String[] args) {
t = new HSTax();
t.getTax();
}
}
위 코드에서 보면 기존 코드를 수정하려하면 다른 인터페이스를 생성하여 적용시켜줘야하는 번거로움이 생긴다.
다음은 Adaptor 디자인 패턴을 적용한 코드이다.
public class HSTaxAdaptor implements TaxIF{
private 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();
}
}
}
Adaptor 디자인 패턴을 적용한다면, Adaptor를 이용하여 Main에서 Adapter로만 호출한다면 기능 변경에도 크게 수정할 필요가 없다.
추후에 기능이 추가되거나 변경된다면, 적절한 Adpator로만 바꾸면 용이하게 유지보수가 가능하다.
[디자인 패턴] 개요
개요 설계 재사용에 의해 높은 생산성과 유지보수가 용시한 설계를 가능하도록 한다. 유사 객체들을 적절한 클래스로 추상화하고 인터페이스와 상속 관계를 포하한 주요 클래스 사이의 관계를
qpdh.tistory.com
'이론적인거 > 디자인 패턴' 카테고리의 다른 글
[디자인 패턴] Observer 패턴 (0) | 2022.12.13 |
---|---|
[디자인 패턴] Template Method 패턴 (0) | 2022.12.13 |
[디자인 패턴] Singleton 패턴 (0) | 2022.12.13 |
[디자인 패턴] 개요 (0) | 2022.12.13 |