/ OOP

S.O.L.I.D


객체지향 (클래스 설계의 원칙 SOLID)

  • SOLID:

    • S : Single responsibility principle(단일 책임의 원칙)

    • O : Open closed principle(개방, 폐쇄의 원칙)

    • L : Liskov substitusion principle(리스코프 치환의 원칙)

    • I : Interface segregation principle(인터페이스 분리의 원칙)

    • D : Dependency inversion principle(의존성 역전의 원칙)

  • 단일 책임의 원칙

    한 클래스는 한 개의 책임을 가져야 함

    문제 발생 시 클래스에서 발생할 문제가 한 개여야 함

    ex) 슈팅 게임에서 플레이어를 설계할 때 이동하는 클래스와 적 탄환에 피격 당하는 클래스를 따로 만들어야 함

  • 개방, 폐쇄의 원칙

    확장에는 개방되어야 하고 변경에는 폐쇄되어야 함

    ex) 속도, 크기는 같지만 모양만 다른 탄환을 만들 때 모양만을 자식 클래스에서 재정의 함

  • 리스코프 치환의 원칙

    자식 클래스는 그 부모 클래스와 교체할 수 있어야 함

    ex) 부모 클래스가 인간, 자식 클래스가 소크라테스일 때

    사람은 죽는다.

    사람은 숨을 쉰다.

      소크라테스는 죽는다.
    
      소크라테스는 숨을 쉰다.
    
  • 인터페이스 분리의 원칙

    클래스에서 사용하지 않는 메서드는 분리해야 함

    ex) 플레이어가 피해를 받는 클래스에 플레이어의 공격력과 관련된 메서드는 넣을 필요가 없음

  • 의존성 역전의 원칙

    부모 클래스가 자식 클래스의 구현에 의존하면 안 됨

    자식 클래스를 수정할 때 부모 클래스도 수정해야 하면 안 됨

    ex) 소크라테스의 특징이 변경됐을 때 인간의 특징도 바뀌면 안 됨

-->