SMALL

SRP(Single Responsiblity Principle, 단일 책임 원칙)

  • 클래스나 매서드는 단 하나의 책임만을 가져야 한다.
  • 대표적으로 남자, 여자에 대한 군번 속성을 생각하면 된다. 그러므로 공통 속성을 잘 골라서 추상화를 해야 한다.

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

  • 기존의 코드를 변경하지 않으면서, 기능을 추가할 수 있어야 한다
  • 자주 변경될 것과, 변경되지 않을 것을 엄격히 구분
  • 추상화와 다형성을 잘 해야 한다.

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

  • 자식 클래스는 부모 클래스를 대체할 수 있어야 한다.
  • 자식 클래스는 부모 클래스의 기능을 재정의 하지 않고 확장만 수행하도록 해야 한다. (Override를 최소한 하는 것)
  • 대표적으로 Rectangle, Square 예시를 생각하면 된다.

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

  • 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다.
  • SRP는 클래스 단일책임을 중점이라면, ISP는 인터페이스 단일책임이 중점이다.
  • 인터페이스를 사용자에 입장에서 분리시키면 된다.

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

  • 의존 관계를 가질 때, 변화가 쉬운 것(클래스)보다 어려운 것(인터페이스, 추상 클래스)에 의존해야 한다.
  • Spring DI(Dependency Injection) 기술을 생각하면 된다.
LIST

'전공 > 디자인패턴' 카테고리의 다른 글

디자인패턴  (0) 2021.06.07
싱글턴 패턴  (0) 2018.05.11

+ Recent posts