OOP와 SOLID

Lucy·2022년 12월 19일
0

Dev.note

목록 보기
2/4

객체 지향 프로그래밍 (OOP)

컴퓨터 프로그래밍의 패러다임으로써 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 모임으로 파악하고자하는 것

  • 추상화, 상속, 다형성, 다중 상속 등을 통해 프로그램을 유연하고 변경이 용이하게 만듦
    EX. 역할은 interface로 구현은 이를 구현한 class/객체로 하여 역할과 구현을 분리한다.

SOLID : 좋은 객체 지향 설계의 5가지 원칙

  1. Single Responsibility Principle (SRP) : 단일 책임 원칙

    • 하나의 클래스는 하나의 책임만 가진다.
  2. Open / Closed Principle (OCP) : 개방 / 폐쇄 원칙

    • 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.

    • cf. 기능을 추가하고자 다형성을 이용하여 클라이언트 코드를 변경하는 경우

  3. Liskov Substitution Principle (LSP) : 리스코프 치환 원칙

    • 프로그램의 객체는 정확성을 깨뜨리지 않으면서 하위 타입의 instance로 바꿀 수 있어야 한다.

    • EX. 다형성에서 sub-class는 interface 규약을 모두 지켜야 함

  4. Interface Segregation Principle (ISP) : 인터페이스 분리 원칙

    • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
  5. Dependency Inversion Principle (DIP) : 의존관계 역전 원칙

    • 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다.

    • 변경되기 쉬운 부분(ex. impl)이 아니라 interface와 같은 변경되기 쉽지 않은 것에 의존하도록

    • Ex. 구현 클래스가 아닌 인터페이스에 의존해야 함


Ref

SOLID와 코드 예시
https://ios-development.tistory.com/705?category=1008271

profile
나아가는 OnlyOne 개발자

0개의 댓글