Facade Pattern
개요
- 단순 Wrapper Class
- Class 사용법이 복잡하여 쉽게 사용하는 Wrapper를 만들때 사용
- Design pattern중 가장 간단
구현 방법
//import java.util.ArrayList;
//import java.util.List;
public class main {
public static void main(String[] args) {
FacadeWrapper fw = FacadeWrapper.startInstance(); // [1] Singleton 적용
fw.Write("Test.txt", "Write this!!"); // [3] FacadeWrapper만 호출
fw.Read("Test.txt");
}
}
class FacadeWrapper {
private static FacadeWrapper fw;
private FacadeWrapper() { };
public static FacadeWrapper startInstance() { // [2] Singleton 적용
if (fw == null) fw = new FacadeWrapper();
return fw;
}
public void Read(String fn) { // [4] 실제 적용되는 복잡한 코드
SimpleReader sr = new SimpleReader();
sr.FileOpen(fn);
System.out.println("Read =" + sr.FileRead());
sr.FileClose();
}
public void Write(String fn, String ft) {
SimpleWriter sw = new SimpleWriter();
sw.FileOpen(fn);
sw.FileWrite(ft);
sw.FileClose();
}
}
class SimpleReader {
public void FileOpen(String f) {
System.out.println("Opne "+f);
}
public String FileRead() {
return "Read File";
}
public void FileClose () {
System.out.println("File Close");
}
}
class SimpleWriter {
public void FileOpen(String f) {
System.out.println("Opne "+f);
}
public void FileWrite(String f) {
System.out.println("Write File "+f);
}
public void FileClose () {
System.out.println("File Close");
}
}
- [1] Singleton 호출 (new Class 형태로는 안되도록)
- [2] Singleton 구현
- [3] 간단하게 read() 로 사용할 수 있도록 Wrapper 생성
- [4] read() 호출 시 내부적으로 수행되어야 하는 실제 복잡한 코드
'Software Architect' 카테고리의 다른 글
[Design Pattern] Decorator Pattern (0) | 2022.03.24 |
---|---|
[Design Pattern] Adapter Pattern (0) | 2022.03.24 |
[Design Pattern] Singleton Pattern (0) | 2022.03.24 |
[Design Pattern] Builder Pattern (0) | 2022.03.24 |
[Design Pattern] Factory Method Pattern (0) | 2022.03.24 |