[iOS] SOLID Principles

a-paka·2022년 3월 22일
0

각 원칙에 한 줄 설명과 예시는 다음과 같다.


Single Responsibility
객체는 하나의 기능만 수행해야 한다.

  • View 는 UI 관련 설정만, 네트워크 매니저는 HTTP 요청/응답만 관여해야 한다.

Open-Closed
소프트웨어 엔티티는 확장에 열려있고 변경에 닫혀있어야 한다.

  • <예시>
    데이터 타입이 계속 추가되는 경우 추상 클래스를 작성하면 좋다.

Liskov substitution

프로그램의 정상 동작을 유지하면서 클래스 S 를 따르는 객체를 클래스 S 의 서브클래스 T 를 따르는 객체로 치환할 수 있어야 한다.

  • 서브클래싱을 했을 때 상위 클래스의 동작과 엇나가면 안된다.

Interface segregation

사용하지 않는 UI 기능을 구현하지 않도록 주의하라

  • <예시>
    UI 관련 프로토콜에 구현이 필요 없는 메소드가 포함되는 경우 프로토콜을 분리하는 것이 좋다.

Dependency inversion

추상화한 것이 디테일에 의존하지 않도록 작성해야 한다.

  • 이것도 프로토콜 프로그래밍을 사용해야 하는 이유 중 하나이다.

ref: https://www.raywenderlich.com/21503974-solid-principles-for-ios-apps
ref: https://medium.com/@nishant.kumbhare4/solid-principles-in-swift-73b505d3c63f

profile
iOS Engineer

0개의 댓글