본문 바로가기
객체지향의 사실과 오해

객체지향의 사실과 오해 3장 정리

by 킴도TV 2022. 5. 17.

SRP(Single Responsiblity Principle)

단일 책임 원칙

  • 클래스는 단 한 개의 책임을 가져야 한다.
  • 단일 책임을 정하는 기준: 한 객체의 변경 이유는 단 한가지이어야 한다.

클린코드 내용 캡쳐

=> 충분히 작지 않다.

=> 변경 이유는 단 한가지. SRP를 만족하는 클래스다.

LSP(Liscov Substitution Principle)

리스코프 치환 법칙

  • 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.

위반한 사례

  • 직사각형 vs 정사각형
  • UISwitch는 size를 바꿔도 사이즈가 바뀌지 않는다 -> 리스코프 치환 법칙 위반!
    • UISwitch는 아래처럼 코드를 작성해야 사이즈가 바뀝니다.
let switch = UISwitch()
switch.transform = CGAffineTransform(scaleX: 0.75, y: 0.75)