Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 2.71 KB

ObjectOrientedPrinciples.md

File metadata and controls

49 lines (38 loc) · 2.71 KB

객체 지향 원칙

작성자

tdm1223 rlatjdwo555 Stupid07

객체지향 5대원칙(SOLID)

  • SRP(단일 책임 원칙)
  • OCP(개방-폐쇄 원칙)
  • LSP(리스코프 치환 원칙)
  • ISP(인터페이스 분리 원칙)
  • DIP(의존 역전 원칙)

5대 원칙이란?

  • 객체지향을 설계할때 지키면 좋은 원칙

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

  • 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임(기능)만을 가져야 한다.
  • 응집도1)는 높고 결합도2)는 낮게

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

  • 객체는 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다는 원칙이다.
  • 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다.
  • 대표적인 문법이 인터페이스(Interface)이다.

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

  • 자식 클래스는 언제나 자신의 부모 클래스대체할 수 있다는 원칙이다.
  • 자식 클래스는 부모 클래스의 기능을 수행할 수 있어야 한다.

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

  • 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.
  • 하나의 일반적인 인터페이스보다는, 여러 개의 구체적인 인터페이스가 낫다.

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

  • 상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안된다는 원칙이다
  • 추상화 된 것은 구체적인 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다.
  • 의존관계를 맺을 때, 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺는다는 것을 의미한다.
  • DIP를 만족하면 '의존성 주입(DI)' 기술로 변화에 유연한 설계를 할 수 있다.

참조

각주

  • 1)응집도 : 하나의 기능을 제공하기 위해 집중하는 정도
  • 2)결합도 : 두 모듈 사이의 연관 관계