디자인 패턴(Design Pattern)
- 아키텍처 설계 수준보다 낮은 수준의 설계 문제에 재사용 가능한 솔루션 제공
- 최상위 설계가 아키텍처 패턴, 디자인 패턴은 아키텍처 패턴보다 더 하위 수준의 설계
1. 싱글턴 패턴(Singleton Pattern)
1) 해당 클래스의 인스턴스가 하나만 만드러지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴 (바깥에서 사용하려면 setter, getter을 사용해서만 가능하게 만드는 것)
- 생성자의 접근 지정자를 private로 함
- private하게 자신의 객체가 생성되도록 함
- 생성된 객체를 가져다 쓸 수 있는 getter을 만듦
2. 템플릿 메서드 패턴 (Template Method Pattern)
1) abstract
2) 알고리즘의 골격만 정의하고 각 단계에 대한 구체적인 처리는 서브 클래스에게 위임하는 패턴
3) 템플릿 메서드는 '알고리즘에서 불변적인 부분은 한 번만 구현하고 가변적인 동작은 서브 클래스에서 구현할 수 있도록 남겨둔 것'을 말함
3. MVC 패턴(Model-Veiw-Controller)
* 면접을 볼 때 패턴의 목적을 먼저 얘기하고, 그 역할에 대해서 설명하기!
1) 소프트웨어를 각각 Model-View-Controller로 구분하여 개발하는 방법
- Model: 어플리케이션의 데이터, 정보를 나타냄 (VO: Value Object, DAO:Database Access Object)
- View: UI(User Interface) 부분을 담당 (HTML, JSP, JSF, Thymeleaf)
- Controller: Model과 View를 제어하는 역할 (Servlet, Spring Controller)
2) 목적
- 개발의 역할 분리 (동시적 개발 가능)
- 코드의 재사용