[디자인패턴] 디자인 패턴이란?

sunny·2023년 3월 5일
0

디자인 패턴

목록 보기
1/11

디자인 패턴


디자인 패턴이란?

💡 디자인 패턴이란, 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것을 의미한다.

SOLID 원칙

객체지향 설계에서 지켜줘야 할 5개의 원칙

1. SRP (Single Responsibility Principle), 단일 책임 원칙

  • 객체는 단 하나의 책임만 가져야 한다는 원칙
  • 응집도를 높게, 결합도는 낮게
    • 응집도: 한 프로그램의 요소가 얼마나 뭉쳐있는지
    • 결합도: 프로그램 구성 요소들 사이가 얼마나 의존적인지

2. OCP (Open-Closed Principle), 개방-폐쇄 원칙

  • 기존의 코드를 변경하지 않으면서 (closed), 기능을 추가할 수 있도록 (open) 설계가 되어야 한다는 원칙
  • 캡슐화를 통해 여러 객체에서 사용하는 같은 기능을 인터페이스에서 정의하는 방법이 있다

3. LSP (Liskov Substitution Principle), 리스코프 치환 원칙

  • 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다는 설계 원칙
  • 자식 클래스는 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행

4. ISP (Interface Segregation Principle), 인터페이스 분리 원칙

  • 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 설계 원칙
  • 하나의 거대한 인터페이스 보다는 여러 개의 구체적인 인터페이스가 낫다

5. DIP (Dependency Inversion Principle), 의존 역전 원칙

  • 객체들이 서로 정보를 주고 받을 때 의존 관계가 형성되는데, 이때 객체들은 나름대로의 원칙을 갖고 정보를 주고 받아야 한다는 원칙
  • 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다

디자인 패턴의 종류

생성 (Creational) 패턴구조 (Structural) 패턴행위 (Behavioral) 패턴
SingletonAdapterChain of Responsibility
BuilderBridgeCommand
Factory MethodCompositeInterpreter
Abstract FactoryDecoratorIterator
PrototypeFacadeMediator
FlyweightMemento
ProxyObserver
State
Strategy
Template Method
Visitor

1. 생성 패턴

  • 객체 생성에 관련된 패턴
  • 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 크게 영향을 받지 않도록 유연성 제공

2. 구조 패턴

  • 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
  • 예를 들어 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공

3. 행위 패턴

  • 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
  • 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지, 또 그렇게 하면서도 객체 사이의 결합도를 최소화하는 것에 중점

참고 자료

0개의 댓글

관련 채용 정보