💡 디자인 패턴 Design pattern
디자인 패턴은 소프트웨어 설계 과정에서 자주 발생하는 문제를 패턴 형태로 일반화한 것으로, 이를 이용하면 코드 및 디자인을 재사용하여 모듈의 역할 또는 모듈 간의 인터페이스 구현 설계 등의 작업을 효율적이고 간편하게 할 수 있다.
⚬ GoF의 디자인 패턴
1995년 GoF(Gang of Four)가 처음으로 디자인 패턴을 구체화하였다.
GoF의 디자인 패턴은 소프트웨어 공학에 가장 많이 사용되는 디자인 패턴이며, 목적에 따라 행위 패턴 11개, 구조 패턴 7개, 생성 패턴 5개 총 23개의 패턴으로 구성되어 있다.
💡 행위 패턴 Behavioral
행위 패턴은 클래스나 객체의 상호작용, 손실 결합을 패턴화한 것으로, 하나의 객체를 여러 객체로 분할하여 결합도를 최소화한다.
1. strategy 패턴: 메서드(기능)가 자주 바뀌므로 이를 별도로 구성한 뒤, 알고리즘을 작성하여 내부에서 변화하도록 한다.
2. template method 패턴
3. iterator 패턴
4. visitor 패턴
5. mediator 패턴
6. chain of responsibility 패턴
7. state 패턴: 객체의 상태에 따라서 동작을 다르게 해야 할 때 사용한다.
8. interpreter 패턴
9. observer 패턴
10. command 패턴
11. memento 패턴
💡 구조 패턴 Structural
구조 패턴은 클래스나 객체를 합성하여 더 큰 구조를 만드는 패턴이다.
1. decorator 패턴
2. adapter 패턴
3. composite 패턴
4. bridge 패턴
5. facade 패턴 [페이스 – 페서드]
6. flyweight 패턴
7. proxy 패턴
💡 생성 패턴 Creational
생성 패턴은 객체 생성 및 참조 과정을 추상화하여 코드의 유연성을 높이는 패턴이다.
1. factory method 패턴
2. singleton 패턴
3. prototype 패턴
4. builder 패턴
5. abstract factory 패턴