디자인 패턴이란 일종의 설계 기법이며, 설계 방법이다.
디자인 패턴을 사용하는 목적
SW의 재사용성, 호환성, 유지 보수성을 보장할 수 있다.
디자인 패턴의 특징
- 디자인 패턴은 아이디어 이지, 특정한 구현이 아니다.
- 프로젝트에 항상 적용해야 하는 것은 아니지만, 추후 재사용, 호환, 유지 보수 시 발생하는 문제 해결을 예방하기 위해 패턴을 만들어 둔 것이다.
원칙 - SOLID(객체지향 설계 원칙)
1. Single Responsibility Principle
: 하나의 클래스는 하나의 역할만 해야 한다.
2. Open - Close Principle
: 확장(상속) 에는 열려있고, 수정에는 닫혀 있어야 한다.
3. Liskov Substitution Principle
: 자식이 부모의 자리에 항상 교체될 수 있어야 한다.
4. Interface Segregation Principle
: 인터페이스가 잘 분리되어서, 클래스가 꼭 필요한 인터페이스만 구현하도록 해야 한다.
5. Dependency Inversion Property
: 상위 모듈이 하위 모듈에 의존하면 안된다. 둘 다 추상화에 의존하며, 추상화는 세부 사항에 의존하면 안된다.
분류
3가지 패턴의 목적을 이해해야 한다.
1. 생성 패턴(Creational) : 객체의 생성 방식 결정
: 클래스 생성 패턴(Class - creational patterns), 객체 생성 패턴(Object - creational patterns)
- 예시 : DBConnection 을 관리하는 Instance 를 하나만 만들 수 있도록 제한하여, 불필요한 연결을 막는다.
2. 구조 패턴(Structural) : 객체간의 관계를 조직
- 예시 : 2개의 인터페이스가 서로 호환이 되지 않을 때, 둘을 연결해주기 위해서 새로운 클래스를 만들어서 연결시킬 수 있도록 한다.
3. 행위 패턴(Behavioral) : 객체의 행위를 조직, 관리, 연합
- 예시 : 하위 클래스에서 구현해야 하는 함수 및 알고리즘 들을 미리 선언하여, 상속 시 이를 필수로 구현하도록 한다.
참조 : https://gyoogle.dev/blog/
'이론 > 디자인패턴' 카테고리의 다른 글
디자인패턴 - SOLID(LSP, ISP, DIP) (0) | 2022.01.31 |
---|---|
디자인패턴 - SOLID (SRP, OCP) (0) | 2022.01.30 |
디자인 패턴 - 싱글톤 패턴(Singleton pattern) (0) | 2022.01.30 |