본문 바로가기
프로그래밍

객체 지향 프로그래밍 OOP Object Oriented Programming

by Damon11 2022. 10. 25.

어디서나 설명하는 기본적인 개념에 대해 먼저 정리해본다. 

기본 개념

1. Abstracition (추상화)

'컴퓨터의 구조와 설계' 중

컴퓨터 설계자와 프로그래머는 자원의 수가 급격히 증가함에 따라 설계 시간이 길어지는 방지하기 위해서 생산성을 높이기 위한 기술을 개발해야 했다. 하드웨어와 소프트웨어의 생산성을 높이는 핵심 기술 중 하나는 여러 수준에서 설계를 명시하는 추상화(Abtraction)이다.

하위 수준의 상세한 사항을 안 보이게 함으로써 상위 수준의 모델을 단순화한다.

 

2. Encapsulation (캡슐화)

정보은닉

다른 곳에서 미치는 영향을 최소화

 

3. Generalization (상속)

 

4. Polymophism (다형성)

 

 

클린코드 중

추상 인터페이스를 제공해 사용자가 구현을 모른채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스이다.

자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 낫다.

 

자료/객체 비대칭

객체는 추상화 뒤로 자료를 숨긴 채 '자료를 다루는 함수'만 공개한다.

자료 구조는 자료를 그대로 공개하며 별 다른 함수를 제공하지 않는다.

 

 

 

댓글