디자인 패턴
- 소프트웨어 설계시 특정 맥락에서 자주 발생하는 공통된 문제에 대한 해결책
특징
- 디자인 패턴은 특정한 구현이 아닌 아이디어
- 프로젝트에 항상 적용해야 하는 것은 아니지만 추후 재사용, 호환, 유지 보수시 발생하는 문제를
예방하기 위해 패턴을 만들어 둔 것
원칙 - SOLID
- 객체지향 설계 원칙
1. Single Responsibility Principle
- 하나의 클래스는 하나의 역할만 해야 함
2. Open - Closed Principle
- 확장(상속)에는 열려있고 수정에는 닫혀 있어야 함
3. Liskov Substitution Principle
- 자식이 부모의 자리에 항상 교체될 수 있어야 함
4. Interface Segregation Principle
- 인터페이스가 잘 분리되어서 클래스가 꼭 필요한 인터페이스에만 구현하도록 해야 함
5. Dependency Inversion Principle
- 상위 모듈이 하위 모듈에 의존하면 안 됨
- 둘 다 추상화에 의존하며, 추상화는 세부 사항에 의존하면 안 됨
분류
1. 생성 패턴 (Creational)
- 기존 코드의 유연성과 재사용을 증가시키는 다양한 객체 생성 메커니즘들
2. 구조 패턴 (Structural)
- 객체들의 구조를 유연하고 효율적으로 유지하면서 더 큰 구조로 조립하는 방법
3. 행위 패턴 (Behavioral)
- 객체 간의 책임 분배 및 알고리즘들