해당 포스팅은 한빛 미디어 헤드퍼스트 디자인 패턴(에릭 프리먼, 엘리자베스 롭슨 저)를 통해 공부한 내용을 정리한 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
좋은 프로그래머는 자기 두뇌를 사용한다. 그러나 좋은 가이드라인은 모든 케이스를 고려해야만 하는 노력을 줄여준다.
(Francis Glassborow, 개발자)
Combined Pattern
여러 패턴을 함께 사용하여 더욱 강력한 객체지향 디자인 패턴
- 패턴 몇개를 결합한다고 무조건 복합 패턴이 되는 것이 아님.
- 여러가지 문제의 일반적인 해결법을 제시해야함.
- ex) MVC패턴
- 여러 패턴에 대해 적용 가능한 시나리오 작성.
- 같은 역할을 하는 클래스에 대해 기능 통일 → 상속
- 다른 클래스에서 같은 인터페이스를 사용하도록 연결하는 역할 → 어댑터 패턴
- 다양한 클래스를 한데 묶어 소리를 낸 횟수 세려면 → 데코레이터 패턴
- 데코레이터에서 객체를 제대로 포장하지 않으면 원하는 행동 추가 불가능. 데코레이터로 감싸는 부분을 하나로 빼내서 캡슐화 → 팩토리 패턴
- 다양한 클래스를 한데 관리 ⇒ 반복자 패턴, 구성패턴
- 하나의 클래스에 대해 관리 ⇒ 옵저버 패턴
Model - View - Controller 알아보기
View
- Model을 표현하는 방법을 제공
- 화면에 표시할 때 상태와 데이터는 Model에서 가져오기
Controller
- Controller에서 Model을 조작
- 사용자가 인터페이스를 건드리면 그 행동이 Controller에게 전달
- 사용자에게 입력을 받으며 입력받은 내용이 Model에게 의미 전달.
Model
- View에게 상태 변화 통기
- 필요한 상태, 데이터, 애플리케이션 로직은 Model에 들어있음.
동작
- 사용자는 View에만 접촉 가능
- Controller가 Model에게 상태를 변경하라고 요청
- 사용자의 행동을 받아서 해석
- 의미해석, 모델 조작 결정.
- Controller가 View를 변경해달라고 요청
- 결과로 View에게 바꿔달라고 요청할 수 있음.
- 상태가 변경되면 Model이 View에게 사실 전달
- 사용자가 한 행동으로 내부적인 변화 등으로 모델이 변경되면 뷰에게 상태가 변경되었다고 요청
- View가 Model에게 상태 요청
모델-뷰-컨트롤러에 사용되는 패턴 알아보기
- 컴포지트 패턴
- 디스플레이는 여러 단계로 겹쳐있는 윈도우, 패널, 텍스트로 구성
- 각 디스클레이는 복합 객체나 잎버튼이 될 수 있음.
- 최상위 뷰 구성요소에게만 화면을 갱신
- 전략 패턴
- 옵저버 패턴
- 상태가 변경되었을 때 그 모델과 연관된 객체들에게 연락.
- 모델을 뷰와 컨트롤러로부터 분리
'기타 > 디자인패턴' 카테고리의 다른 글
[Design Pattern] Proxy Pattern (2) | 2024.06.10 |
---|---|
[Design Pattern] State Pattern (0) | 2024.06.09 |
[Design Pattern] Iterator Pattern & Composite Pattern (0) | 2024.06.09 |
[Design Pattern] Template Method Pattern (0) | 2024.06.05 |
[Design Pattern] Adapter Pattern (0) | 2024.06.04 |