[SOLID] ISP

miori·2022년 11월 6일
0

OOP

목록 보기
4/5
post-thumbnail

ISP (Interface Segregation)

좋은 설계란 기본적으로 시스템에 새로운 요구사항이나 변경이 있을 때 가능한 한 영향 받는 부분을 최소화한 설계이다.
  • 인터페이스 분리 원칙
  • 한 class는 자신이 사용하지 않는 interface는 구현 하지 않는다
    즉, 여러개의 세부적인 interface가 낫다.
  • 사용하지 않는 interface에 변경이 발생하더라도 영향받지 않아야한다.

ISP 를 지켜야하는 이유

  • 불필요한 interface애 의존하면 불필요한 빌드가 유발되기 때문에 필요한 interface만 구현하면 된다.
  • 상속 받은 메소드를 퇴화 시켜야 하는 경우가 발생할 수 있는데 이는 LSP 를 위한하게 된다.

ISP의 예시

iOS에서 ISP예시는 테이블뷰에서 분리된 각각의 UITableViewDelegate, UITableViewDataSource를 채택하여 기능을 구현한다.
따라서 우리는 구현할 기능들만 따로 구현해주면 된다.

POP (Protocol Oriented Programming)

  • swift는 protocol 지향 프로그래밍을 지향한다.
  • swift에서는 특정 역할을 하기 위한 메서드, 프로퍼티 등의 요구사항 정의를 위해 protocol을 사용한다.
  • ISP에 따라 큰 protocol을 작게 분해하여, 필요한 부분의 protocol을 이용해 프로그래밍 하는 것이 POP 이다
profile
iS를 공부하는 miori 입니다.

0개의 댓글