[자바 디자인 패턴] 구조패턴 - 퍼사드 패턴
구조패턴 목록
- 어댑터 패턴 (Adapter Pattern)
- 브릿지 패턴 (Bridge Pattern)
- 컴포짓 패턴 (Composite Pattern)
- 데코레이터 패턴 (Decorator Pattern)
- 퍼사드 패턴 (Facade Pattern)
- 플라이웨이트 패턴 (Flyweight Pattern)
- 프록시 패턴 (Proxy Pattern)
사용하는 객체를 배려한 패턴이라고 생각한다. 각각의 단위기능을 사용자가 더 편리하게 이용할 수 있도록 하려면 인터페이스를 어떤 형태로 제공해야 하는지를 많이 고민해야 할 것 같다.
장점
- 하위 시스템 구성요소의 복잡성으로부터 클라이언트를 보호합니다.
- 서브 시스템과 클라이언트 사이의 느슨한 결합을 촉진합니다.
사용시기
- 복잡한 하위 시스템에 간단한 인터페이스를 제공하려는 경우
- 클라이언트와 추상화의 구현 클래스간에 여러 종속성이 존재하는 경우
UML
Interface Class : MobileShop
public interface MobileShop {
public void modelNo();
public void price();
}
Model Class : Iphone, Samsung, Blackberry
public class Iphone implements MobileShop {
@Override
public void modelNo() {
System.out.println(" Iphone 6 ");
}
@Override
public void price() {
System.out.println(" Rs 65000.00 ");
}
}
public class Samsung implements MobileShop {
@Override
public void modelNo() {
System.out.println(" Samsung galaxy tab 3 ");
}
@Override
public void price() {
System.out.println(" Rs 45000.00 ");
}
}
public class Blackberry implements MobileShop {
@Override
public void modelNo() {
System.out.println(" Blackberry Z10 ");
}
@Override
public void price() {
System.out.println(" Rs 55000.00 ");
}
}
Facade Class : ShopKeeper
public class ShopKeeper {
private MobileShop iphone;
private MobileShop samsung;
private MobileShop blackberry;
public ShopKeeper(){
iphone= new Iphone();
samsung=new Samsung();
blackberry=new Blackberry();
}
public void iphoneSale(){
iphone.modelNo();
iphone.price();
}
public void samsungSale(){
samsung.modelNo();
samsung.price();
}
public void blackberrySale(){
blackberry.modelNo();
blackberry.price();
}
}
Operation Class : FacadePatternClient
public class FacadePatternClient {
public static void main(String args[]) {
ShopKeeper sk=new ShopKeeper();
sk.iphoneSale();
sk.samsungSale();
sk.blackberrySale();
}
}
'JAVA > Design Patterns' 카테고리의 다른 글
01 Strategy 패턴 (0) | 2021.12.10 |
---|---|
[아키텍처 패턴] MVC 모델2 (0) | 2021.11.12 |
[자바 디자인 패턴] 구조패턴 - 프록시 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 플라이웨이트 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 데코레이터 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 컴포짓 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 브릿지 패턴 (0) | 2021.03.17 |
[자바 디자인 패턴] 구조패턴 - 어댑터 패턴 (0) | 2021.03.17 |