CS

[CS] SOLID 원칙

리네엔 2024. 10. 14. 22:50

SOLID

객체지향 프로그래밍에서 좋은 소프트웨어 설계를 위한 다섯가지 원칙

Single Responsibility Priciple (SRP)

  • 하나의 클래스는 하나의 책임/기능만 가져야 함
  • 하나의 클래스가 여러 가지 역할을 수행하게 되면 변경이 필요할 때 해당 클래스의 여러 부분을 수정해야해서 유지보수가 어려워짐

Open/Closed Priniciple (OCP)

  • 소프트웨어 엔티티는 확장에는 열려 있어야 하지만, 수정에는 닫혀 있어야 함
  • 새로운 기능이 필요하면 기존 코드의 수정이 아닌 확장하는 방식으로 해결 할 수 있어야함
  • 소프트웨어 엔티티 :* 클래스, 모듈, 함수

Liskov Subsitution Principle (LSP)

  • 서브타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다
  • 자식 클래스가 부모 클래스의 기능을 확장하되, 부모클래스와 동일하게 동작해야함
  • 부모클래스의 객체 대신 자식 클래스를 사용하더라도 문제가 없어야함.
  • 상속 관계에서는 꼭 IS-A 관계가 성립해야함.

Interface Segregation Priniciple (ISP)

  • 클라이언트는 사용하지 않는 메서드에 의존하지 말아야함
  • 하나의 큰 인터페이스보다 여러 개의 작은 인터페이스로 분리하는 것이 바람직 함

Dependency Inversion Principle (DIP)

  • 고수준 모듈이 저수준 모듈에 의존해서는 안됨
  • 변하기 쉬운 구체적인 것 보다는 변하기 어려운 추상적인 것에 의존해야함
    • 구현클레스에 의존하는 것이 아닌, 인터페이스나 추상 클래스와 같은 추상화된 개념에 의존해야함

'CS' 카테고리의 다른 글

[CS] UML_ClassDiagram  (0) 2024.10.14
[CS] 객체지향 프로그래밍의 4대 특징  (0) 2024.10.14