본문 바로가기

CS

[JAVA] 객체 지향 설계의 5원칙 - SOLID 정리

SOLID 원칙

  • 객체 지향 설계의 기반이 되는 원칙
  • 잘 지키면, 더욱 구조화되며 유지보수성이 증대됨
  1. SRP(Sing Responsibility Principle) : 단일 책임 원칙
    • 클래스는 한 가지 기능 혹은 역할만 가져야 한다.
    • 왜? 코드의 응집도와 유지보수성 향상
  2. OCP(Open/closed Principle) : 개방-폐쇄 원칙
    • 확장에는 개방
    • 변경에는 폐쇄
    • 즉, 기존의 코드를 변경하지 않고, 새로운 기능을 추가할 수 있어야 한다.
    • 어떻게? 인터페이스와 추상화를 활용
  3. LSP(Liskov Substitution Principle) : 리스코프 치환 원칙
    • 상위 타입은 하위 타입으로 대체 가능해야 한다.
    • 즉, 부모 클래스를 사용하는 코드는 자식 클래스를 사용해도 정상 동작해야 함
    • 왜? 다형성을 보장하고, 일관된 동작을 유지하기 위해
  4. ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
    • 자신이 사용하지 않는 인터페이스에 의존하지 않아야 함
    • 즉, 인터페이스는 작은 단위로 분리되어야 함
    • 왜? 인터페이스의 명확성, 응집도 향상 + 시스템의 유연성, 이해도 향상
  5. DIP(Dependency Inversion Principle) : 의존관계 역전 원칙
    • 사용자가 상위 모듈(인터페이스)로만 사용할 수 있도록 상위 모듈은 하위 모듈에 의존하면 안됨
    • 왜? 상위 모듈이 하위 모듈에 의존할 경우, 하위 모듈에 수정이 있을 때 마다, 클라이언트와 상위 모듈도 수정해주어야 하니까 (유지보수성 저하)

'CS' 카테고리의 다른 글

[컴퓨터구조] 캐시 메모리  (0) 2024.03.10
[컴퓨터구조] 총정리  (0) 2024.03.10
운영체제 - 프로세스와 스레드  (0) 2024.03.10
운영체제 정리! -2  (0) 2024.03.10
자료 구조 - 트리 구조 정리  (0) 2024.03.07