OOP의 5대 원칙 SOLID

  1. SRP (Single Responsibility Principle: 단일 책임 원칙)
    • 하나의 클래스는 단일 책임을 가져야한다.
    • 응집도를 높이고 결합도를 낮춰서 특정 기능의 변경을 위한 수정이 한곳에서 일어날 수 있도록 한다.
    • 만일 특정 기능을 변경하기 위해 많은 클래스가 수정되었다면 책임이 여러 클래스가 지고 있다는 것이다. 또한 클래스의 대부분이 수정되지 않았다면 그 클래스는 여러 책임을 가지고 있다는 것이다.
  2. OCP (Open-Closed Principle: 개방 폐쇄 원칙)
    • 소프트웨어 개체는 확장에 대해 열려있고 수정에 대해 닫혀있어야 한다.
    • 빠르고 안정적인 수정을 할 수 있게 해주며 사이드이팩트를 줄여준다.
    • 새로운 기능을 확장하기 위해서 잘 동작하는 기존 코드를 수정하지 않고 새로운 코드를 추가하는 것만으로 가능해야한다. 새로 추가, 수정 되는 코드는 기존 코드의 변경을 초래하지 않아야한다.
    • 타입에 새로운 멤버들이 계속 추가되거나 분기처리 되는 곳이 많을 때
    • ex) switch문마다 긴코드 작성 x, 클래스를 새로 생성만 하기
    • switch/if문 없애기
  3. LSP (Liskov Substitution Principle: 리스코프 치환 원칙)
    • 상위 타입 객체를 하위 타입으로 바꾸어도 프로그램은 일관되게 동작해야한다.
    • 부모의 행위를 자식이 거부해서는 안된다.
    • 퇴화함수(override한 뒤에 비어있게 하거나 에러처리)가 있으면 안된다.
  4. ISP(Interface Segregation Principle: 인터페이스 분리원칙)
    • 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 말아야한다.
  5. DIP(Dependency Inversion Principle: 의존 역전원칙)
    • 상위 모듈은 하위 모듈에 종속 되어서는 안된다.

 

'개발 > CS' 카테고리의 다른 글

[CS] 데이터베이스  (0) 2021.08.10
[Java] JVM 구조  (0) 2020.07.24
[CS] 자료구조  (0) 2020.07.23
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기