728x90
디자인 패턴
디자인 패턴이란?
- 소프트웨어 설계에서 일반적으로 발생하는 문제에 대한 일반적인 솔루션
- 여러 문제들이 공통된 원인에 의한 것이라면, 패턴을 이용하여 같은 구조로 문제를 해결할 수 있다.
ex) 관찰자 패턴을 이용하여 알림이 필요한 모든 상황에 적용하기
- 단순 개념(blueprint)이며, 고정된 특정 코드가 아니다.
- 한 패턴에 여러 다양한 구현체가 존재할 수 있다.
- 결과와 기능은 정해져있지만, 구현 순서와 방법은 다를 수 있다.
디자인 패턴을 공부하는 것의 장점
- 소프트웨어 설계에서 문제가 발생했을 때 디자인 패턴을 이용해 해결할 수 있다.
- 팀원과 의사소통할 때 디자인 패턴 개념을 공유하면 효율적으로 의사소통할 수 있다.
디자인 패턴을 적용할 때 주의할 부분
- "프로그램 맥락을 고려하지 않고 패턴을 일반적으로 적용하여 교리처럼 따르는 것"
- "단순 코드가 충분히 이해하기 쉽고 잘 동작함에도 패턴을 적용하려고 하는 것"
If all you have is a hammer, everything looks like a nail.
당신이 가진 모든 것이 망치라면, 모든 것이 못처럼 보입니다.
디자인 패턴의 분류
- 생성 패턴 (
Creational patterns
)- 기존 코드의 유연성과 재사용을 증가시키는 방향으로 객체 생성 메커니즘을 제공한다.
- 구조 패턴 (
Strctural patterns
)- 객체와 클래스를 더 큰 구조로 조립하면서 유연하게 유지하는 방법
- 조립한다 = 다양한 구조를 가진 각각의 객체들을 연결하는 것을 넘어 구조화하고 관계를 정의한다.
- 행위 패턴 (
Behavior patterns
)- 객체 간의 의사소통(협력) 방식을 정의하고, 객체마다 책임을 할당한다.
글로 보면 모호한데, 구체 코드 예시는 찬찬히 공부해보며 정리해보자.
Reference
What's a design pattern?
What's a design pattern? Design patterns are typical solutions to commonly occurring problems in software design. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code. You can’t just find a pattern and
refactoring.guru
매일 블로그에 한 편 글 작성하기 시작!
728x90