Facade는 복잡한 클래스와 메소드로 만들어진 기능을 사용자에게 간단하게 보여지고 사용할 수 있게 만들어 주는 것입니다.
프로그램이 커지면서 클래스와 메소드가 많아 지고 연관성이 많아지면서 프로그램이 복잡해집니다. 이와 같은 경우에 클래스간의 관계를 정확히 이해하고 순서에 맞게 메소드를 호출할 수 있어야합니다. 그래서 하나의 창구를 만들어서 내부는 복잡하게 만들어 져있지만 사용자입장에서는 로우한 api를 보는 듯 하게 만들어줍니다.
한마디로 Facade는 복잡한 클래스와 메소드로 만들어진 기능을 사용자에게 간단하게 보여지고 사용할 수 있게 만들어 주는 것입니다.
그래서 인터페이스의 수가 적어지고 이는 외부와의 결합이 얕아진 다는 것을 의미합니다.
파일 구조
클래스 다이어그램
Database.java
package pagemaker; import java.io.*; import java.util.Properties; public class Database{ private Database(){}
static Properties getProperties(String dbname){ String filename = dbname+".txt"; Properties prop = new Properties(); try{ prop.load(new FileInputStream(filename)); }catch(IOException e){ System.out.println("warnning: "+ filename+ " is not found"); } return prop; } }