Design Pattern3 [Design Pattern] 디자인 패턴의 이해와 GoF 패턴 디자인 패턴(Design Pattern)이란 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 수 있는 훌륭한 해결책이다. 패턴은 비슷하거나 동일한 양식 또는 유형들이 반복되어 나타난다는 의미이며, 문제와 해결책도 동일한 유형이나 양식을 통해 쉽게 찾을 수 있다. 디자인 패턴의 구조는 context, problem, solution 3개의 필수적인 요소로 구성된다. context : 문제가 발생하는 여러 상황을 기술한다. 패턴이 적용될 수 있는 상황을 나타낸다. problem : 패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈들을 기술한다. 이때 여러 제약 사항과 영향력도 문제 해결을 위해 고려해야 한다. solution : 문제를 해결하도록 설계를 구성.. 2020. 5. 8. [Design Pattern] 커맨드(Command) 패턴이란? 커맨트 패턴(Command pattern)은 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용하다. 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴이다. 아래의 예제는 눌리면 특정 기능을 수행하는 버튼을 표현한 예제다. 1. Command 동작을 수행하는 execute 메서드가 포함된 Command 인터페이스 public interface Command { public abstract void execute(); } 2. Button Button 클래스의 pressed 메서드에서 구체적인 기능(램프 켜기, 끄기)을 직접 구현하는 대신 버튼을 눌렀을 때 실행될 기능.. 2020. 5. 8. [Design Pattern] 옵저버(Observer) 패턴이란? 옵저버 패턴(Observer pattern)은 데이터의 변경이 발생했을 경우 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 유용하다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 간단한 예제인 입력된 성적 값을 출력하는 프로그램을 작성해보자. 1. Observer 추상화된 통보 대상 클래스 public interface Observer { /* 데이터의 변경을 통보했을 때 처리하는 메소드 */ public abstract void update(); } 2. Subject 추상화된 변경 관심 대상 데이터 public abstract class Subject { private List observers = new ArrayList(); /* 통보 대상을 추가함 */ pu.. 2020. 5. 8. 이전 1 다음