객체지향 프로그래밍

워니·2024년 8월 8일
0

객체지향 프로그래밍

OOP(Object-Oriented Programming)은 객체들의 집합으로 프로그램의 상호작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식을 말한다.

객체지향 프로그래밍의 특징(캡상추다)

  • 추상화
    복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것
  • 캡슐화
    객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것
  • 상속성
    상위 클래스의 특성을 하위클래스가 이어받아서 재사용, 추가, 확장하는 것
  • 다형성
    하나의 메서드나 클래스가 다양한 방법으로 동작하는 것. 오버라이딩오버로딩이 있다

    오버로딩 : 같은 이름을 가진 메서드를 여러 개 두는 것을 말한다. 메서드의 타입, 메서드 유형, 매개변수의 수 등을 다르게 해야 한다.
    오버라이딩 : 주로 메서드 오버라이딩을 말하며 상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의하는 것을 의미한다

객체지향 프로그래밍의 설계 원칙(SOLID)

  • 단일 책임 원칙(SRP; Single Responsibility Principle)
    모든 클래스는 각각 하나의 책임만 가져야 한다
    예를 들어 a라는 로직이 존재한다면 이는 A클래스여야 하고, 수정되어도 A와 관련된 수정이어야 한다
  • 개방-폐쇄 원칙(OCP; Open Closed Principle)
    기존 코드는 잘 변경하지 않으면서 확장은 쉽게 할 수 있어야 한다
  • 리스코프 치환의 원칙(LSP; Liscov Substitution Principle)
    부모 객체에 자식 객체를 넣어도 프로그램이 문제없이 돌아가야 한다
  • 인터페이스 분리의 원칙(ISP; Interface Segregation Principle)
    하나의 일반적인 인터페이스보다 여러 개의 구체적인 인터페이스를 만들어야 한다
  • 의존성 역전의 원칙
    상위계층은 하위계층의 변화에 대한 구현으로부터 독립적(추상적)이어야 한다
profile
매일, 조금씩 나아가는중

0개의 댓글