데브코스에서 조언 받은 내용으로서 주관적인 내용입니다!!
디자인 패턴이란
디자인 패턴이란 SOLID가 반영되어 코드의 재사용성을 높일 수 있는 설계 아이디어
디자인 패턴 분류
- 생성 패턴
- 객체의 생성에 관련된 패턴
- 특정 객체가 생성되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성 제공
- Singleton, Builder, Factory Method, Abstract Factory Method
- 구조 패턴
- 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
- 객체를 묶어 단일 인터페이스를 제공하거나 새로운 기능을 제공
- Proxy, Decorator, Facade, Adapter
- 행위 패턴
- 객체나 클래스 사이의 책임 분배와 관련된 패턴
- 혼자 수행할 수 없는 작업을 여러 객체로 분리하고 결합도를 최소로 하도록 설정
- Strategy, State, Template Method
꼭 알아야하는(?) 디자인 패턴
- 다음 패턴은 다 알아야한다.
- Singleton
- Factory method pattern & abstract factory method pattern
- Builder
- Strategy
- Proxy <-> decorator의 차이점
- Adapter 패턴
- Iterator
- 디자인 패턴에는 solid를 위반하는 경우가 있다.