개발/Design Pattern
디자인 패턴(Design Pattern) 개요
개발자 박현준
2023. 2. 6. 18:19
728x90
디자인 패턴은 일종의 설계 기법이며, 설계 방법이다.
디자인 패턴의 목적
- SW 재사용성, 호환성, 유지 보수성을 보장한다.
디자인 패턴의 특징
- 디자인 패턴은 특정한 구현이 아닌 아이디어임.
- 프로젝트에 항상 적용해야 하는 것은 아니지만, 추후 재사용, 호환, 유지 보수시 발생하는 문제 해결을 예방하기 위해 패턴을 만들어 둔 것이다.
디자인 패턴의 원칙 - SOLID (객체지향 설계 원칙)
(여기서는 간단하게 설명하고 나중에 따로 SOLID만 정리)
- SRP(Single Responsibility Principle, 단일책임 원칙)
- 하나의 클래스는 하나의 역할만 해야한다.
- OCP(Open Close Principle, 개방폐쇄 원칙)
- 확장(상속)에는 열려있고, 수정에는 닫혀 있어야 한다.
- LSP(Liskov Substitution Principle, 리스코브 치환 원칙)
- 자식이 부모의 자리에 항상 교체될 수 있어야 한다.
- ISP(Interface Segregation Principle, 인터페이스 분리 원칙)
- 인터페이스가 잘 분리되어서, 클래스가 꼭 필요한 인터페이스만 구현하도록 해야한다.
- DIP(Dependency Inversion Property, 의존성 역전 원칙)
- 상위 모듈이 하위 모듈에 의존하면 안된다.
- 둘 다 추상화에 의존하며, 추상화는 세부 사항에 의존하면 안된다.
디자인 패턴의 분류(중요, 3가지 패턴의 목적을 이해하기!)
- 생성 패턴(Creational) : 객체의 생성 방식 결정
- Class-creational patterns, Object-creational patterns.
- 예) DBConnection을 관리하는 Instance를 하나만 만들 수 있도록 제한하여, 불필요한 연결을 막음.
- 구조 패턴(Structural) : 객체간의 관계를 조직
- 예) 2개의 인터페이스가 서로 호환이 되지 않을 때, 둘을 연결해주기 위해서 새로운 클래스를 만들어 연결시킬 수 있도록 함.
- 행위 패턴(Behavioral) : 객체의 행위를 조직, 관리, 연합
- 예) 하위 클래스에서 구현해야 하는 함수 및 알고리즘들을 미리 선언하여, 상속시 이를 필수록 구현하도록 함.
728x90