Skip to content

Latest commit

 

History

History
41 lines (31 loc) · 2.71 KB

README.md

File metadata and controls

41 lines (31 loc) · 2.71 KB

SOLID 원칙 예제 저장소

이 저장소를 사용하는 방법

이 저장소는 SOLID 원칙에 대해 쉽게 알아볼 수 있게 나쁜/좋은 코드로 분리하여 작성하였습니다.

각 원칙에 example의 bad/good에 코드를 작성하였으며, ❌,✅ 등과 같은 첨부된 주석과 같이 해석하여 쉽게 알아볼 수 있게 만들었습니다.

디렉토리 구조

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

SOLID 란?

SOLID는 객체 지향 프로그래밍에서의 기본 원칙을 5가지로 나눈 것이며 로버트 C.마틴이 설계했습니다.

시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들기 위한 법칙입니다.

각 원칙 설명

  • Single responsibility principle(단일 책임 원칙)
    • 한 클래스는 하나의 책임만 가져야 한다.
  • Open/closed principle (개방-폐쇄 원칙)
    • 확장에는 열려있으나 변경에는 닫혀있어야 한다.
  • Liskov substitution principle (리코스프 치환 원칙)
    • 하위 클래스는 상위 클래스의 기능을 대체할 수 있어야 하며, 상위 클래스의 객체를 사용하는 프로그램은 하위 클래스의 객체로 변경해도 정상적으로 작동해야 한다
  • Interface segregation principle (인터페이스 분리 원칙)
    • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
  • Dependency inversion principle (의존관계 역전 원칙)
    • 추상화에 의존해야 하며, 구체화에 의존하면 안된다
약자 SOLID 원칙 핵심 개념
S Single Responsibility Principle (단일 책임 원칙) 한 클래스는 하나의 책임만 가져야 한다.
O Open/closed principle (개방-폐쇄 원칙) 확장에는 열려있으나 변경에는 닫혀있어야 한다.
L Liskov substitution principle (리코스프 치환 원칙) 하위 클래스는 상위 클래스의 기능을 대체할 수 있어야 하며, 상위 클래스의 객체를 사용하는 프로그램은 하위 클래스의 객체로 변경해도 정상적으로 작동해야 한다
I Interface segregation principle (인터페이스 분리 원칙) 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
D Dependency inversion principle (의존관계 역전 원칙) 추상화에 의존해야 하며, 구체화에 의존하면 안된다