ComputerScience

디자인 패턴이란? 디자인 패턴의 종류

Albosa2lol 2023. 11. 8. 14:57

디자인 패턴이란?

일종의 설계 기법이며, 설계 방법이다.

 

목적

  • SW 재사용성, 호환성, 유지 보수성을 보장.

 

특징

  • 특징프로젝트에 항상 적용해야 하는 것은 아니지만, 추후 재사용, 호환, 유지 보수시 발생하는 문제 해결을 예방하기 위해 패턴을 만들어 둔 것임.
  • 디자인 패턴은 아이디어임, 특정한 구현이 아님.

 

원칙

  •  SOLID (객체지향 설계 원칙)
    1. Single Responsibility Principle
    2. 하나의 클래스는 하나의 역할만 해야 함.
    3. Open - Close Principle
    4. 확장 (상속)에는 열려있고, 수정에는 닫혀 있어야 함.
    5. Liskov Substitution Principle
    6. 자식이 부모의 자리에 항상 교체될 수 있어야 함.
    7. Interface Segregation Principle
    8. 인터페이스가 잘 분리되어서, 클래스가 꼭 필요한 인터페이스만 구현하도록 해야함.
    9. Dependency Inversion Property둘 다 추상화에 의존하며, 추상화는 세부 사항에 의존하면 안됨.
    10. 상위 모듈이 하위 모듈에 의존하면 안됨.

분류 (중요)

3가지 패턴의 목적을 이해하기!

생성 패턴 (Creational) : 객체의 생성 방식 결정

Class-creational patterns, Object-creational patterns.

예) DBConnection을 관리하는 Instance를 하나만 만들 수 있도록 제한하여, 불필요한 연결을 막음.

 

구조 패턴 (Structural) : 객체간의 관계를 조직

예) 2개의 인터페이스가 서로 호환이 되지 않을 때, 둘을 연결해주기 위해서 새로운 클래스를 만들어서 연결시킬 수 있도록 함.

 

행위 패턴 (Behavioral): 객체의 행위를 조직, 관리, 연합

예) 하위 클래스에서 구현해야 하는 함수 및 알고리즘들을 미리 선언하여, 상속시 이를 필수로 구현하도록 함.

 

'ComputerScience' 카테고리의 다른 글

프로그래밍 패러다임  (0) 2023.11.09
프론트엔드에서 MV* 아키텍쳐란 무엇인가요?  (1) 2023.11.08
메모리  (0) 2023.11.08
페이징과 세그먼테이션  (0) 2023.11.08
프로세스 & 스레드  (0) 2023.11.06