💌 Design Pattern

[Design Pattern] SOLID

exception_log 2022. 2. 13. 16:06

안녕하세요! Joy 입니다. 

오늘은 SOLID 원칙에 대해서 복습할 겸 간단히 정리해보려고 합니다.

요새 몸이 좀 안좋아서 HIG도 알고리즘도 포스팅도 못하고 

매일 혼자 공부해서 Github 업로드만 하고 있었어요...흑흑

알고리즘 정리하면서 디자인패턴도 함께 복습하고 있었기 때문에..

오늘은 디자인패턴 글 쓸거에요.. (사실 알고리즘이 포스팅하는데 더 많은 시간이 걸려요..)

아무튼~ 시작해보겠습니다리

 

디자인 패턴

  • 디자인 패턴은 "아이디어" 이다. 어떠한 구현을 말하는 것은 아님
  • 프로젝트에 반드시 적용해야 하는 사항은 아니지만, 추후 재사용성이나 유지보수시 발생할 문제를 예방하기 위해 만들어진 것

 

SOLID (객체지향 설계 원칙)

  • SRP : Single Responsibility Principle
    • 하나의 클래스는 하나의 역할만 담당해야한다.
  • OCP : Open-Close Principle
    • 확장(상속)에는 열려있고 수정에는 닫혀있어야 한다.
  • LSP : Liskov Substitution Principle
    • 자식이 부모의 자리에 항상 교체될 수 있어야 한다.
  • ISP : Interface Segragation Principle
    • 인터페이스가 잘 분리되어서 클래스가 꼭 필요한 인터페이스만 구현할 수 있도록 해야한다.
  • DIP : Dependency Inversion Property
    • 상위 모듈이 하위 모듈에 의존해서는 안된다. 
    • 둘 다 추상화에 의존하며, 추상화는 세부 사항에 의존해서는 안된다.

 

디자인 패턴의 분류

디자인 패턴은 세가지로 분류할 수 있다.

  1. 생성 패턴 : 객체의 생성 방식을 결정한다. 
    • 예시 : 팩토리메소드패턴, 추상패턴, 싱글톤패턴 등
  2. 구조 패턴 : 객체간의 관계를 조직한다.
    • 예시 : 어댑터패턴, 브릿지패턴, 컴포지트패턴, 데코레이터패턴, Facade패턴 등
  3. 행위 패턴 : 객체의 행위를 조직, 관리, 연합한다. 
    • 예시 : Iterator, 옵저버패턴, 스트래티지패턴, 템플릿메소드패턴 등

 

 

간단하게 일단 개념만 잡아봤어요!

틈나는대로 알고리즘도 디자인패턴도 열심히 포스팅하리라 다짐하며 

오늘도 읽어주셔서 감사합니다!

반응형