루비가 쉽게 배울 수 있는 SOLID 원칙 ③ "다람쥐의 교환 원칙"

3358 단어 Rubysolidtech

SOLID 원칙은


다음 5가지 원칙은 소프트웨어의 확장성과 유지보수성을 높이기 위한 것이다.
  • S(Single-responsibility principle): 단일 책임 원칙
  • O(Open-closed principle): 오픈/닫기 원칙
  • L(Liskov substition principle): 다람쥐의 치환원칙
  • I(Interface segregation principle): 인터페이스 분리 원칙
  • D(Dependency inversion principle): 의존적 반전의 원칙
  • 다람쥐의 교체 원칙(LSP)은


    '자류는 반드시 부모류와 교체할 수 있어야 한다'는 원칙.
    다시 말하면
  • 하위 클래스에서 다시 쓰는 방법은 부모 클래스 방법과 같은 매개 변수를 취하고 같은 종류의 되돌아오는 값을 되돌려야 한다.
  • 상위 클래스에서 예외를 대답하지 않더라도 하위 클래스에서는 예외를 대답할 수 없다.
  • 위험 이전 원칙을 위반한 예


    class Animal
      def cry
        'えーん'
      end
    end
    
    class Human < Animal
      // OK
      def cry
        'えーんえーん'
      end
    end
    
    class Dog < Animal
      // NG(返り値の型が親クラスと異なる)
      def cry
        1
      end
    end
    
    class Fish < Animal
      // NG(子クラスで例外を発生させている)
      def cry
        raise StandardError, '魚は泣けません'
      end
    end
    

    위험 이전 원칙을 위반한 문제에 주의하다

  • 하위 클래스에 업로드하는 방법은 부모 클래스와 같은 매개 변수를 얻습니까?
  • 하위 클래스에 덮어쓰는 방법은 부모 클래스와 같은 종류의 되돌아오는 값을 되돌려줍니까?
  • 하위 클래스를 다시 쓰는 방법에 예외가 있습니까?
  • 참고 문헌

  • 삽화 이해의 SOLID 원칙
  • SOLID의 원칙을 스스로 이해하다
  • Back to Basics: SOLID
  • 좋은 웹페이지 즐겨찾기