protocol
-
인터페이스 분리 원칙(Interface Segregation Principle)기록/OOP 2023. 1. 31. 00:50
SOLID의 인터페이스 분리 원칙(Interface segregation principle)은 클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않아야 함을 말합니다. 그러기 위해서는 큰 인터페이스를 분리해서 사용하는 기능만 제공하도록 설계해야 합니다. 사용하지 않지만, 의존성을 가지고 있다면 인터페이스가 변경되었을 때 사용하지도 않는데 수정이 필요합니다. 조금 더 나아가서, 모델이 비대할 때 모델과 뷰 사이에 뷰 모델과 뷰 모델이 채택하는 프로토콜을 두고 꼭 필요한 메서드와 정보만 제공하는 것도 예시가 될 수 있을 것 같습니다. 또한 iOS에서 실제로 잘 지켜진 사례는 UITableView 관련 프로토콜이 있습니다. 데이터와 셀을 제공하는 UITableViewDataSource와, 사용자와의 상호작용..
-
리스코프 치환 원칙(Liscov Substitution Principle)기록/OOP 2023. 1. 30. 12:49
SOLID의 리스코프 치환 원칙(Liscov substitution principle)은 자료형 S가 자료형 T의 서브 타입이라면 프로그램 속성의 변경 없이 자료형 T의 객체를 자료형 S의 객체로 치환할 수 있어야 함을 말합니다. 부모 클래스의 기능을 확장해서 사용하기 위해 상속하는 경우가 많은데, 무턱대고 상속하다가 자식 클래스가 부모 클래스가 정의해놓은 동작을 수행하지 못하거나, 뒤에서 나올 MeleeMinion의 speak() 메서드처럼 에러를 던지는 등, 퇴화한다면 상속이 제대로 되지 않고 있다는 의미입니다. 이런 상황에서 자료형 T의 객체를 자료형 S의 객체로 치환하게 되면, 올바르게 작업을 수행하지 않게 됩니다. 리스코프 치환 원칙은 상속 개념에 있어서 중요한 원칙이며, 상속할 때 리스코프 치..