2024/12/17 3

[헤드퍼스트 디자인 패턴] 7-2. 퍼사드 패턴

에릭 프리먼 님의 "헤드퍼스트 디자인 패턴" 책을 정리한 포스팅 입니다 1. 퍼사드 패턴서브시스템의 기능을 통합 인터페이스로 묶어줌여러개의 인터페이스들을 하나로 통합함인터페이스를 단순하게 바꾸려 함이 목적 2. 홈시어터 퍼사드public class HomeTheaterFacade { Amplifier amp; Tuner tuner; StreamingPlayer player; Projector projector; TheaterLights lights; Screen screen; PopcornPopper popper; public void watchMovie(String movie) { popper.on(); popper.pop(); ..

Java/Design Pattern 2024.12.17

[헤드퍼스트 디자인 패턴] 7-1. 커맨드 패턴

에릭 프리먼 님의 "헤드퍼스트 디자인 패턴" 책을 정리한 포스팅 입니다 1. 어댑터중개어떤 인터페이스를 클라이언트에서 요구하는 인터페이스로 바꿔주는 역할 2. 오리Duckpublic interface Duck { void quack(); void fly();}public class MallardDuck implements Duck { public void quack() { System.out.println("꽥"); } public void fly() { System.out.println("날고 있어요!"); }} Turkeypublic interface Turkey { void gobble(); void fly();}public class WildTurkey im..

Java/Design Pattern 2024.12.17

[헤드퍼스트 디자인 패턴] 6. 커맨드 패턴

에릭 프리먼 님의 "헤드퍼스트 디자인 패턴" 책을 정리한 포스팅 입니다 1. 커맨드 패턴요청 내용 캡슐화객체를 서로 다른 요청 내역에 따라 매개변수화 할 수 있음 요소Receiver: 실제 작업을 수행하는 객체Command: 작업을 캡슐화Invoker: 작업 실행을 요청하는 객체 장점작업을 요청하는 쪽과 작업을 처리하는 쪽을 분리할 수 있음 2. 리모컨리모컨 (Receiver)public class RemoteControl { Command[] onCommands, offCommands; Command undoCommand; public RemoteControl() { onCommands = new Command[7]; offCommands = new Comma..

Java/Design Pattern 2024.12.17