Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 1.18 KB

FacadePattern.md

File metadata and controls

53 lines (42 loc) · 1.18 KB

퍼사드 패턴

  • 디자인 패턴 중 하나이다.
  • Facade는 "건물의 정면"을 의미한다.
  • 복잡한 것들, 세부적인 것들은 감추고, 간단한 것만 보여준다. 즉 간략화된 인터페이스를 제공 한다

아래 Java 코드 예제는 사용자(you)가 퍼사드(컴퓨터)를 통해 컴퓨터 내부의 부품(CPU, HDD) 등을 접근한다는 내용의 추상적인 예제이다.

/* Complex parts */

class CPU {
	public void freeze() { ... }
	public void jump(long position) { ... }
	public void execute() { ... }
}

class Memory {
	public void load(long position, byte[] data) {
		...
	}
}

class HardDrive {
	public byte[] read(long lba, int size) {
		...
	}
}

/* Façade */

class Computer {
	public void startComputer() {
        CPU cpu = new CPU();
        Memory memory = new Memory();
        HardDrive hardDrive = new HardDrive();
		cpu.freeze();
		memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));
		cpu.jump(BOOT_ADDRESS);
		cpu.execute();
	}
}

/* Client */

class You {
	public static void main(String[] args) throws ParseException {
		Computer facade = /* grab a facade instance */;
		facade.startComputer();
	}
}