카테고리 없음

[자바 디자인 패턴] 구조패턴 - 퍼사드 패턴

심심한 낙지 2019. 8. 11. 11:59

POOPOO: 배변 일기 앱

SMALL

구조패턴 목록


 

사용하는 객체를 배려한 패턴이라고 생각한다. 각각의 단위기능을 사용자가 더 편리하게 이용할 수 있도록 하려면 인터페이스를 어떤 형태로 제공해야 하는지를 많이 고민해야 할 것 같다.

 

장점

- 하위 시스템 구성요소의 복잡성으로부터 클라이언트를 보호합니다.

- 서브 시스템과 클라이언트 사이의 느슨한 결합을 촉진합니다.

 

사용시기

- 복잡한 하위 시스템에 간단한 인터페이스를 제공하려는 경우

- 클라이언트와 추상화의 구현 클래스간에 여러 종속성이 존재하는 경우

 

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();       
    }  
} 

 

 

 

출처 : https://www.javatpoint.com/

 

Tutorials - Javatpoint

Tutorials, Free Online Tutorials, Javatpoint provides tutorials and interview questions of all technology like java tutorial, android, java frameworks, javascript, ajax, core java, sql, python, php, c language etc. for beginners and professionals.

www.javatpoint.com

 

LIST