[디자인패턴] 커맨드(Command) 패턴이란?
·
공부/소프트웨어공학
Command 패턴은 Behavioral Design Pattern이다. 전등을 키는 버튼을 만든다고 해보자위와 같은 시스템에서 버튼을 눌렀을 때 Lamp가 아니라 Alarm이 켜지도록 하려면 어떻게 해야 하는가? 🤔또는 버튼이 한 번 눌리면 Lamp가 켜지고 두 번 눌리면 Lamp가 꺼지도록 하려면 어떻게 해야 하는가? 🤔➡️ 기존 코드의 Button(theLamp: Lamp)를 Button(theAlarm: Alarm)으로 변경해야 한다. OCP 위반 OCP를 만족하도록변화를 식별한다. 이번 경우에는 request다. 변화하는 것을 클래스로 분리한다. LampOnCommand, AlarmStartCommand변화하는 개념을 포용하는 개념을 추상 클래스나 인터페이스화한다. Command의 등장!2번..
[디자인패턴] 스트래티지(Strategy) 패턴이란?
·
공부/소프트웨어공학
쉽게 말해! 알고리즘의 변화를 캡슐화로 처리하자 Strategy 패턴은 Behavioral Pattern이다. 이처럼 Robot을 extends하는 두 개의 디테일한 로봇 태권브이와 아톰이 있다고 하자. 태권브이의 move는 걷기이며 attack은 미사일을 사용한다. 아톰의 move는 날기이며 attack은 펀치이다.public abstract class Robot { private String name; public abstract void move(); public abstract void attack(); public Robot(String name) { this.name = name; } public String getName() { return name; }}-pub..