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

림예·2024년 5월 11일

CS

목록 보기
2/19

데이터를 추상화 시켜 객체로 만들고 객체들 간의 상호작용을 통해 로직 구성

  1. 캡슐화(Encapsulation)
    데이터와 메서드를 하나의 캡슐로 만들어 외부로부터 보호하는 것
    낮은 결합도를 유지할 수 있도록 설계(한 곳에서 변화가 일어나도 다른 곳에 미치는 영향을 최소화)
    정보 은닉을 활용

  2. 상속(Inheritance)
    기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것
    기능 확장을 위해 사용(재사용성)

  3. 추상화(Abstraction)
    세부적인 사물들의 공통적인 특징을 파악한 후 하나의 집합으로 만들어내는 것
    불필요한 세부 사항들은 제거하고, 본질적인 부분만을 추출하여 표현

  4. 다형성(Polymorphism)
    같은 이름의 메서드나 연산자가 다른 클래스에 대해 다른 동작을 하도록 하는 것
    메서드 오버라이딩(Method Overriding), 메서드 오버로딩(Method Overloading)


코드 재사용성이 용이 → 상속을 통해
유지보수가 쉽다 → 캡슐화를 통해


SOLID

  • SRP(단일 책임 원칙) : 하나의 클래스는 하나의 책임만
  • OCP(개방 폐쇄 원칙) : 확장(새로운 기능 추가)에는 열려 있지만 변경(코드 수정)에는 닫혀있어야
  • LSP(리스코프 치환 원칙) : 하위 타입은 항상 상위 타입 대체할 수 있어야
  • ISP(인터페이스 분리 원칙) : 인터페이스 내에 메서드는 최소화해야
  • DIP(의존관계 역전 원칙) : 자신보다 구체적인 것이나 변하기 쉬운 것에 의존 X (구현 클래스 x 인터페이스 o)








profile
Think big 🌏

0개의 댓글