객체지향 패러다임

JoJo·2024년 3월 1일
0

✔️ 객체지향의 4가지 특징


1. 추상화 (Abstraction)

추상화란 불필요한 부분을 제거함으로써 필요한 핵심만 나타낸 것입니다.
흔히 일반화, 단순화라고도 생각하고 이를 사용하는 목적은 복잡성을 낮추기 위해 사용합니다.

2. 다형성 (Poltmorphism)

다양한 형태를 가지는 것을 다형성이라고합니다.
하나의 타입으로 여러 종류의 타입을 가질 수 있는 것을 의미합니다

3. 캡슐화 (Encapsulation)

객체 내부의 세부사항을 외부로부터 감추는 것입니다.
이러한 캡슐화의 목적은 인터페이스만 공개해서 변경하기 쉬운 코드를 만들기 위함이라고 생각합니다.

4. 상속 (Inheritance)

객체들 간의 관계를 구축하는 방법으로, 부모로부터 상속받아 객체의 요소를 사용하는 것입니다.


✔️ 객체지향의 5가지 설계 원칙 (SOLID)


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

모드 클래스는 하나의 책임만을 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫습니다.

2. OCP : Open/Closed Principle (개방 폐쇠의 원칙)

기존 코드를 변경하지 않으면서, 기능을 추가할 수 있도록 설계되어야 한다는 원칙입니다.

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

상위 타입의 객체를 하위 타입의 객체로 치환해도 동작에 전혀 문제가 없어야 한다는 원칙입니다.

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

많은 원칙을 가진 인터페이스를 작은 단위로 분리시킴으로써 클라이언트에게 필요한 인터페이스들로만 구현하다록 하는 원칙입니다.

5. DIP : Dependency Inversion Principle (의존성 역전의 원칙)

의존관계를 맺을 때 자주 변경되는 쪽이 아니라 변경이 거의 일어나지 않는 쪽에 의존하라는 의미이며, 자기보다 변하기 쉬운 것에 의존하게 되면 변화의 영향을 많이 받기 때문에 추상화된 인터페이스나 상위 클래스를 두어서 변화의 영향을 받지 않게 하기 위한 원칙입니다.


✔️ 객체지향 패러다임

  • 적저한 객체에게 적적한 책임을 할당하여 서로 메세지를 주고 받으며 협력하도록 하는 것.
  • 전점 증가하는 SW 복잡도를 낮추기 위해 객체지향 패러다임이 대두되고 있습니다.
    • 클래스가 아닌 객체에 초점을 맞추어야 합니다.
    • 객체들에게 적절한 역할과 책임을 할당해야합니다.
profile
꾸준히

0개의 댓글