[상태 패턴] 동영상 재생
·
문제모음/ChatGPT
문제동영상 플레이어는 재생(Playing), 일시정지(Paused), 정지(Stopped) 상태가 있습니다. 상태에 따라 play(), pause(), stop() 동작이 다르게 작동하도록 구현하세요.요구사항VideoPlayer 클래스는 상태를 가집니다.PlayerState 인터페이스를 구현하는 상태 클래스별로 play, pause, stop 동작을 정의합니다.상태별로 메시지를 출력하고, 필요시 상태 전환이 일어나도록 합니다.현재 상태: Stoppedplay() 호출 -> 재생 시작pause() 호출 -> 일시정지stop() 호출 -> 정지 접근방법✔ VidoPlayer 클래스가 상태를 가지기 때문에 내부에서 상태를 저장할 변수 필요 코드public class Main { public static v..
[커맨드 패턴] 음악 플레이어
·
문제모음/ChatGPT
문제 사용자는 음악 플레이어를 앱에서 제어할 수 있습니다. 플레이어는 재생(play), 정지(stop) 기능이 있습니다.요구사항MusicPlayer 클래스 작성 (play(), stop() 메서드가 존재합니다.PlayCommand, StopCommand 를 작성해야 합니다.AppInvoker가 setCommand()와 executeCommand()를 가집니다음악이 재생됩니다.음악이 정지됩니다. 접근방법✔ 음악 플레이어의 실행될 기능의 커맨드의 조상 필요 코드public class Main { public static void main(String[] args) { AppInvoker invoker = new AppInvoker(); MP3 mp3 = new MP3(); invoker.setCom..
[전략 패턴] 배송비 계산
·
문제모음/ChatGPT
문제쇼핑몰의 배송 방식은 아래와 같이 있습니다.택배는 3000원, 편의점 픽업은 1500원, 퀵 배송은 7000원의 배송비가 추가됩니다.요구사항DeliveryStrategy 인터페이스에서 calculateFee(int basePrice) 메서드가 존재합니다.CourierDelivery, ConvenienceStoreDelivery, QuickDelivery 클래스를 구현해야 합니다.Order 클래스에서 배송 전략을 받아 최종 가격을 계산합니다.(단, 배송비는 상품가격이 50,000원 이상일때 배송 전략을 각각 적용됩니다.)택배 배송: 총 결제 금액 = 53000원편의점 픽업: 총 결제 금액 = 51500원퀵배송: 총 결제 금액 = 57000원 접근방법✔ 모든 배송 방식의 조상은 DeliveryStra..
[옵저버 패턴] 뉴스 구독
·
문제모음/ChatGPT
문제문제작성요구사항요구사항 1요구사항 2 결과 작성 접근방법✔ 뉴스 카테고리는 중복이 되지 않고 카테고리별 구독자들은 여러명이 될 수 있으니 Map과 List 사용✔ 구독자는 여러개의 뉴스 카테고리 구독 가능함을 명심 코드public class Main { public static void main(String[] args) { NewsPublisher publisher = new NewsPublisher(); Subscriber kim = new Subscriber("Kim"); Subscriber lee = new Subscriber("Lee"); Subscriber park = new Subscriber("Park"); // 구독 publisher.addSubscriber(NewsCa..
[옵저버 패턴] 스마트홈 온도 센서
·
문제모음/ChatGPT
문제스마트홈 시스템에서 온도 센서를 구현합니다. 센서에서 측정한 온도가 변하면, 연결된 장치들(에어컨, 히터, 스마트 디스플레이)에 알림을 보냅니다.요구사항TemperatureSensor 클래스는 Subject 역할을 합니다.옵저버들은 AirConditioner, Heater, Display 세 가지 클래스로 만듭니다.- 에어컨은 26도 이상이면 "에어컨 가동" 출력- 히터는 18도 이하이면 "히터 가동" 출력- 디스플레이는 단순히 온도를 출력[Display] 현재 온도: 30도[AirConditioner] 온도가 26도 이상입니다. 에어컨 가동![Display] 현재 온도: 15도[Heater] 온도가 18도 이하입니다. 히터 가동! 접근방법✔ 옵저버의 조상 클래스인 Device 인터페이프 필요 코..