본문 바로가기
컴퓨터공학 기초/기초개념+TIP

[기초개념] 객체지향 5대원칙

by 상용최 2020. 2. 22.
반응형

객체지향 5대원칙 (SOLID)

  • SRP (단일책임 원칙)
  • OCP (개방-폐쇄 원칙)
  • LSP (리스코프 치환 원칙)
  • DIP (의존 역전 원칙)
  • ISP (인터페이스 분리 원칙)

SRP

  • 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 하나의 기능을 수행하는데 집중되어 있어야한다. 기능이 많아지면 결합이 발생할 가능성이 높아지며 유지보수 비용이 증가한다.
    그렇기때문에 책임을 분리시킬 필요가 있다.

OCP

  • 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다.
    변경될 수 있는것이 무엇인가에 초점을 맞춰야 한다.
    변경이 일어날 수 있는 내용은 수정하기 쉽게 설계하고 변경되지 않아야 하는 것은 수정되는 내용에 영향을 받지 않게 설계해야 한다.

LSP

  • 자식클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야한다.
    자식 클래스는 부모 클래스의 역할을 대체할 수 있어야 한다는 것을 의미한다.
    대체할 수 있으려면 부모의 기능에 대해 오버라이드를 할 수 없게하면 된다.
    자식 클래스는 부모 클래스의 기능을 재정의하지 않고 확장만 수핼할 수 있도록 해야한다.

DIP

  • 의존 관계를 맺을 때, 변화가 거의 없는 것에 의존해야한다.
    변화하기 쉬운것이란 구체화된 클래스를 의미하고 변화하기 어려운것은 인터페이스와 추상화를 의미한다.
    따라서 인터페이스와 추상클래스에 의존을 해야한다는 의미이다.

ISP

  • 자신이 사용하지 않는 인터페이스는 구현하지 않아야한다.
반응형

댓글