이직준비/CS

객체 지향의 특징 ( 추상화/ 캡슐형/ 상속/ 다형성)

hyun-1200 2022. 7. 28. 22:23

1. 추상화

  • 불필요한 부분을 제거한다.
  • 인터페이스와 구현을 분리한다.

2. 캡슐형

  • 데이터 캡슐화 : 필드와 메서드를 하나로 묶는 것
  • 은닉화 : 객체의 세부내용이 외부에 드러나지 않도록 private으로 접근제한을 두어, 외부에서 데이터를 직접 접근하는 것을 방지한다. 

3. 상속

https://hyun-1200.tistory.com/98

 

상속(inheritance) / 포함(Composite) 관계

상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 장점 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성을 높이고 유지보수를 편리하게 한다. 사용법 - exte

hyun-1200.tistory.com

 

 


4. 다형성

https://hyun-1200.tistory.com/103

 

다형성(polymorphism)

📌  다형성? : 여러 가지 형태를 가질 수 있는 능력  상속과 함께 객체지향개념의 중요한 특징이며, 상속과 깊은 관계가 있다. 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함

hyun-1200.tistory.com

- 역할과 구현을 분리 할 수 있다.

- 역할과 구현으로 구분하면 세상이 단순해지고유연해지며 변경도 편리해진다

장점

  • 클라이언트는 대상의 역할(인터페이스)만 알면 된다.
  • 클라이언트는 구현 대상의 내부 구조를 몰라도 된다.
  • 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다.

활용 

  • 자바 언어의 다형성을 활용
    • 역할 = 인터페이스
    • 구현 인터페이스를 구현한 클래스구현 객체
  • 객체를 설계할 때 역할과 구현을 명확히 분리
  • 객체 설계시 역할(인터페이스)을 먼저 부여하고그 역할을 수행하는 구현 객체 만들기

다형성의 본질

  • 인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. 다형성의 본질을 이해하려면 협력이라는 객체사이의 관계에서 시작해야함
  • 클라이언트를 변경하지 않고서버의 구현 기능을 유연하게 변경할 수 있다.
  • 스프링과 객체 지향에서 다형성이 가장 중요하다!
  • 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.

 

'이직준비 > CS' 카테고리의 다른 글

객체지향의 설계 원칙 5가지 (SOLID)  (0) 2022.07.28
JVM의 메모리 구조  (0) 2022.07.28
클린코드란?  (0) 2022.07.28
접근제한자 (public / protected/ default/ private )  (0) 2022.07.28
DataBase의 인덱스 (Index) 란?  (0) 2022.07.28