Computer Sience/Desgin Pattern22 [Design Pattern] 템플릿 메소드, 템플릿 콜백 (Template method, Template-Callback) 패턴 템플릿 메소드 (Template method) 패턴알고리즘 구조를 서브 클래스가 확장할 수 있도록 템플릿으로 제공하는 방법추상 클래스는 템플릿을 제공하고 하위 클래스는 구체적인 알고리즘을 제공한다 템플릿 메소드 (Template method) 패턴 beforeFileProcessor 클래스 public class FileProcessor { private String path; public FileProcessor(String path) { this.path = path; } public int process(){ try(BufferedReader br = new BufferedReader(new FileReader(path))) { .. 2024. 11. 25. [Design Pattern] 전략 (Strategy) 패턴 전략 (Strategy) 패턴여러 알고리즘을 캡슐화하고 상호 교환 가능하게 만드는 패턴컨텍스트에서 사용할 알고리즘을 클라이언트가 선택한다. 전략 (Strategy) 패턴 beforeBlueLightRedLight 무궁화 꽃 게임 public class BlueLightRedLight { private int speed; public BlueLightRedLight(int speed){ this.speed = speed; } public void blueLight(){ if(speed == 1) System.out.println("무 궁 화 꽃 이"); else if(speed == 2) System.out.println("무궁화꽃이");.. 2024. 11. 25. [Design Pattern] 상태(State) 패턴 상태(State) 패턴 객체 내부 상태 변경에 따라 객체의 행동이 달라지는 패턴 상태에 특화된 행동을 분리해 낼 수 있으며, 새로운 행동을 추가하더라도 다른 행동에 영향을 주지 않는다. OCP상태(State) 패턴 beforeStudent 클래스 public class Student { private String name; public Student(String name){ this.name = name; } private List privateCourses = new ArrayList(); public boolean isEnabledForPrivateClass(OnlineCourse onlineCourse){ return this.privateCour.. 2024. 11. 25. [Design Pattern] 옵저버(Observer) 패턴 옵저버 (Observer) 패턴다수의 객체가 특정 객체 상태 변화를 감지하고 알림을 받는 패턴 발행(publish) / 구독(subscribe) 패턴을 구현할 수 있다. 옵저버 (Observer) 패턴 beforeChat Serverpublic class ChatServer { private Map> messages; public ChatServer() { this.messages = new HashMap(); } public void add(String subject, String message){ if(messages.containsKey(subject)){ messages.get(subject).add(message); .. 2024. 11. 25. [Design Pattern] 메멘토(Memento) 패턴 메멘토(Memento) 패턴캡슐화를 유지하면서 객체 내부 상태를 외부에 저장하는 방법 객체 상태를 외부에 저장했다가 해당 상태로 다시 복구할 수 있다. 메멘토(Memento) 패턴 beforeGame 클래스 @Getter @Setterpublic class Game { private int redTeamScore; private int blueTeamScore;} Game 클래스는 간단하게 2가지 상태를 가진다. Client 클래스 public class Client { public static void main(String[] args) { Game game = new Game(); game.setRedTeamScore(10); game.setBl.. 2024. 11. 7. [Design Pattern] 중재자(Mediator) 패턴 중재자(Mediator) 패턴실생활 사례아파트 주민 사이에 어떤일이 생겼을 때 관리 사무소(Mediator)를 통해 해결 비행기(n) 이륙, 착륙 관련 소통 관제탑(Mediator)를 통한다. 여러 객체들이 소통하는 방법을 캡슐화하는 패턴 여러 컴포넌트간의 결합도를 중재자를 통해 낮출 수 있다. 중재자 패턴은 여러 객체가 직접 소통하는 대신, 중재자 역할을 하는 객체를 통해 간접적으로 소통하게 하는 디자인 패턴이다. 이 패턴을 사용하면 컴포넌트 간의 직접적인 의존성을 낮추고 결합도를 줄일 수 있다. 컴포넌트 A, B 서로가 직접 참조하는 대신, 이들이 중재자인 Mediator 객체를 통해 필요한 메시지나 명령을 주고받게 설정하는 거다.이렇게 하면 컴포넌트는 다른 컴포넌트들의 구체적인 구현에 대해 몰.. 2024. 11. 4. 이전 1 2 3 4 다음