※ 본 포스팅은 21.9.24에 게시된 글을 이전한 것 입니다.
객체지향프로그래밍이란?
- 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위 즉, "객체" 들의 모임으로 파악하고자 하는 것이다. 또한, 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트 웨어 개발에 적합하다.
- 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
"유연하고 변경이 용이하다"는
예를 들어 마치 컴퓨터 부품을 갈아 끼워도 고유의 기능은 같아 사용이 가능한 것을 의미한다.
즉, 컴포넌트를 쉽고 유연하게 변경하며 개발할 수 있는 방법이다.
다형성
- 역할과 구현으로 세상을 구분한다.
운전면허가 있는 누구나 운전자 역할을 할 수 있다.
자동차 기종이 달라진다고 해서 자동차의 기본적인 역할이 달라지는 것은 아니므로 운전면허를 가진 누구나 운전을 할 수 있다.
역할만 같다면 구현이 달라도 고유의 기능은 같아 사용이 가능하므로 다시 말해 변경이 용이하다.
결국 클라이언트는 내부 구조를 몰라도 대상의 역할(인터페이스)만 알면 된다.
다형성의 본질
- 인터페이스를 구현한 객체 인스턴스를 실행시점에 유연하게 변경할 수 있다.
- 클라이언트를 변경하지 않고, 서버의 기능을 유연하게 변경할 수 있다.
'📑 개발 이론 > 🌱 SPRING' 카테고리의 다른 글
스프링 핵심 원리 - 스프링 빈 (0) | 2023.06.17 |
---|---|
스프링 핵심 원리 - 스프링 컨테이너 (0) | 2023.06.17 |
스프링 핵심 원리 - 객체지향 원리 적용 정리 (0) | 2023.06.17 |
[스프링 핵심원리] OCP와 DIP (0) | 2023.04.18 |
[스프링 핵심원리] SOLID 원칙 (0) | 2023.04.18 |