디자인패턴3 템플릿 메서드 패턴 (Template Method Pattern) 템플릿 메서드 패턴은 전체적으로 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화할 때 유용합니다. 다른 관점에서 보면 동일한 기능을 상위 클래스에서 정의하면서 확장/변화가 필요한 부분만 서브클래스에서 구현할 수 있도록 합니다. 엘리베이터 제어 시스템을 예시로 생각해볼 때 엘리베이터는 움직이는 동안 문이 닫혀있는지 체크해야합니다. 따라서 엘리베이터를 움직이는 Motor와 Door 클래스의 연관 관계를 정의해야 합니다. enum DoorStatus { CLOSED, OPENED } enum MotorStatus { MOVING, STOPPED } enum Direction { UP, DOWN, LEFT, RIGHT } class Door { private DoorStatus door.. 2022. 8. 12. 옵저버 패턴 (Observer Pattern) 옵저버 패턴은 데이터의 변경이 발생했을 경우 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자할 때 유용합니다. 상적을 출력하는 기능 있다고 할 때 입력된 점수를 저장하는 ScoreRecord 클래스와 점수를 목록의 형태로 출력하는 DataSheetView 클래스가 필요하다. 성적이 입력된 경우, ScoreRecord 클래스의 addScore 메서드가 실행될 때 성적을 출력하려면 ScoreRecord 클래스는 DataSheetView를 참조해야 합니다. import java.util.ArrayList; import java.util.List; public class ScoreRecord { private List scores = new ArrayList(); private DataSheet.. 2022. 8. 2. 스트래티지 패턴 (Strategy Pattern) public abstract class Robot { private String name; public Robot(String name) { this.name = name; } public String getName() { return name; } public abstract void attack(); public abstract void move(); } public class Robot1 extends Robot { public Robot1(String name) { super(name; } public void attack() { System.out.println("I have punch"); } public void move() { System.out.println("I can only walk.. 2022. 7. 6. 이전 1 다음