Skip to content

HSH02/SOLID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 (의존관계 역전 원칙) 추상화에 의존해야 하며, 구체화에 의존하면 안된다

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages