디자인 패턴

퍼사드패턴(Facade Pattern)

chief_sac 2021. 7. 17.
반응형

퍼사드패턴(Facade Pattern

 

💡
퍼사드 패턴이란 , 소프트웨어 공학 디자인 패턴중 하나로 주로 객체지향 프로그래밍 에서 자주 쓰이는 패턴이며 목적은 복잡한 서브 시스템들을 higher-level 인터페이스로 감싸서 간단하게 만드는것이다.

 

퍼사드(Facade)는 사전적인 단어로 "건물의 정면"이라는 단어인데 어떠한 소프트웨어의 다른 커다란 코드 부분에대한 간략한 인터페이스를 제공하는 객체로서 복잡한 서브시스템들과 클라이언트와의 사이에 Facade라는 객체를 세워놓음으로서 복잡한 관계를 정리하고 구조화 하는 패턴을 뜻한다.

 

 

장점

 

  • 퍼사드는 소프트웨어 라이브러리를 쉽게 사용할 수 있게 해준다. 또한 퍼사드는 소프트웨어 라이브러리를 쉽게 이해할 수 있게 해 준다. 퍼사드는 공통적인 작업에 대해 간편한 메소드들을 제공해준다.
  • 퍼사드는 라이브러리를 사용하는 코드들을 좀 더 읽기 쉽게 해준다.
  • 퍼사드는 라이브러리 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜준다. 대부분의 바깥쪽의 코드가 퍼사드를 이용하기 때문에 시스템을 개발하는 데 있어 유연성이 향상된다.
  • 퍼사드는 좋게 작성되지 않은 API의 집합을 하나의 좋게 작성된 API로 감싸준다.

 

 

예제

/* Complex parts */classCPU {
public void freeze() { ... }
public void jump(long position) { ... }
public void execute() { ... }
}

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

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

/* Façade */classComputer {
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 */classYou {
publicstatic void main(String[] args)throws ParseException {
		Computer facade =/* grab a facade instance */;
		facade.startComputer();
	}

 

반응형

'디자인 패턴' 카테고리의 다른 글

데코레이터 패턴이란(Decorator Pattern)  (0) 2021.07.18
퍼사드패턴(Facade Pattern)  (0) 2021.07.17
데코레이터 필터 패턴  (0) 2021.05.30

댓글0