[JAVA] SOLID 원칙

권재현·2024년 11월 12일

JAVA

목록 보기
11/11

정의

  • 객체 지향 설계의 5가지 기본원칙, 소프트웨어 설계에서 유지보수성, 확장성, 유연성을 높이기 위한 규칙이다.

SOLID 원칙의 종류

단일 책임 원칙 SRP(Single Responsesility Principle)

  • 하나의 클래스는 하나의 책임만 가져야한다.
  • 클래스는 한가지 기능에 집중해야하며, 그 외의 기능을 담당하지 않아야 한다.
  • 한 책임의 변경에서 다른 책임의 변경으로의 연쇄작용에서 자유로울 수 있어야 한다.

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

  • 소프트웨어 요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려 있어야 하며, 수정(변경)에는 닫혀 있어야 한다.
  • 새로운 기능을 추가할때 기존 코드를 수정하지 않고, 확장할 수 있도록 설계해야한다.
  • 즉, 기존 구성요소를 쉽게 호가장해서 재사용할 수 있어야 한다.

리스코브 치원의 원칙 LSP(THE Liskov Substitution Principle)

  • 자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 한다.
  • 또는 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다.

인터페이스 분리의 원칙 ISP(Interface Segergation Principle)

  • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
  • 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.
  • SRP가 클래스 단일 책임을 의미한다면, ISP는 인터페이스의 단일 책임을 의미한다.

의존성 역전의 법칙 DIP(Dependency Inversion Principle)

  • 구체적인 클래스에 의존하지 말고 , 인터페이스나 추상 클래스에 의존하도록 설계해야한다.
  • 실제 사용 관계는 바뀌지 않으면서, 추상을 매개로 메세지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙이다.
  • 즉, 복잡하고 지난한 컴포난트간의 커뮤니케이션 관계를 단순화 하기 위한 원칙이다.

출처

https://www.nextree.co.kr/p6960/

profile
여전히 헤매이고 있습니다.

0개의 댓글