객체지향의 원칙에 대해서 한번 살펴보고 가겠습니다.
일단 객체지향이라는 것에 대해서 알아봐야 하는데, 객체지향과 비교할 수 있는 절차지향부터 뭔지 알아봐야 겠습니다.
일단 우리가 밥을 한다고 생각해볼게요
절차지향의 방식대로 한다면 아래의 순서대로 갈 것입니다.
쌀씻기 -> 밥솥에 밥하기 -> 된장 끓이기 -> 국 퍼기 -> 밥상 차리기 -> 완료
그런데 이걸 하다보니, 중간에 된장끓이기 전 고기를 굽거나 하는 일이 발생할 수 있고, 엄마가 밥하는 것을 도와줄 수 있습니다. 그리고 중간에 된장을 빼야 하는 경우도 생기겠죠?
그러다 보니 저 과정들을 관리하기가 어려워졌습니다.
때문에 이 기능들을 개별적으로 아래와 같이 만들어놓고
- 쌀씻기
- 밥솥에 밥하기
- 된장 끓이기
- 국 퍼기
- 밥상 차리
- 완료
필요할 때 마다 가져오고 수정하는 형태로 구현하는 것이 객체지향입니다.
그러면 객체지향으로 설계를 할 때 어떤 방식으로 할 수 있을까요?
1. 추상화
2. 캡슐화
3. 상속
4. 다형성
의 원칙대로 합니다.
1. 추상화
수많은 정보 중, 클래스의 기능을 수행하기 위해 필요한 정보와 행위를 묶어서 설계하는 것을 추상화라고 합니다.
2. 캡슐화
꼭 사용자가 알 필요 없는 부분은 접근할 수 없도록 캡슐안에 넣어둔다는 의미로 캡슐화라고 합니다. 내가 만든 클래스 내에서 불필요한 곳에는 직접 접근할 수 없도록 하여 리소스의 공유와 보안 사이 균형을 맞추는 방법입니다.
3. 상속
재사용성을 위해 부모클래스의 속성을 상속받아서 사용합니다.
4. 다형성
오버라이딩, 오버로딩을 통해 다양하게 동작되도록 설계합니다.
- 참조
https://codevang.tistory.com/77?category=827598
객체지향 언어와 절차지향 언어와의 차이
Java를 하면서 가장 먼저 알아야 할 객체지향언어의 개념을 정리해봤습니다. 절차지향 언어의 대표주자인 C언어와, 객체지향 언어의 대표주자인 Java를 기준으로 설명했습니다. 먼저 절차지향언
codevang.tistory.com
https://codevang.tistory.com/78?category=827598
객체지향 언어의 특징(추상화) [1/4]
그럼 객체지향언어가 가지고 있는 대표적인 특징을 기준으로 C언어와 Java를 비교해보겠습니다. 1. 추상화 (Abstract) 중요한 정보만을 표현함으로써 공통의 속성이나 기능을 묶어 이름을 붙이는
codevang.tistory.com
객체지향개발(OOP) 개념 정리
객체지향개발(Object Oriented Programming)의 특성은 크게 추상화, 캡슐화, 상속성, 다형성이 있다. 1) 추상화(Abstraciton) - 공통의 속성이나 기능을 묶어 이름을 붙이는 것 - 객체 지향적 관점에서 클래스
88240.tistory.com
'기술' 카테고리의 다른 글
프로토콜 버퍼란? (0) | 2022.12.01 |
---|---|
Heap Stack (0) | 2021.09.27 |
OSI 7 Layer (0) | 2021.08.24 |
DB Index (0) | 2021.08.14 |
프로세스(Process)와 쓰레드(Thread)의 차이 (0) | 2021.08.13 |