기술

객체지향의 원칙

개복치 개발자 2021. 10. 20. 19:11

 

 객체지향의 원칙에 대해서 한번 살펴보고 가겠습니다.

 

 일단 객체지향이라는 것에 대해서 알아봐야 하는데, 객체지향과 비교할 수 있는 절차지향부터 뭔지 알아봐야 겠습니다.

 

 일단 우리가 밥을 한다고 생각해볼게요 

 

 절차지향의 방식대로 한다면 아래의 순서대로 갈 것입니다.

 

 쌀씻기 -> 밥솥에 밥하기 -> 된장 끓이기 -> 국 퍼기 -> 밥상 차리기 -> 완료

 

 그런데 이걸 하다보니, 중간에 된장끓이기 전 고기를 굽거나 하는 일이 발생할 수 있고, 엄마가 밥하는 것을 도와줄 수 있습니다. 그리고 중간에 된장을 빼야 하는 경우도 생기겠죠?

 

 그러다 보니 저 과정들을 관리하기가 어려워졌습니다.

 

 때문에 이 기능들을 개별적으로 아래와 같이 만들어놓고

 

 - 쌀씻기

 - 밥솥에 밥하기

 - 된장 끓이기

 - 국 퍼기

 - 밥상 차리

 - 완료

 

 필요할 때 마다 가져오고 수정하는 형태로 구현하는 것이 객체지향입니다.

 

 그러면 객체지향으로 설계를 할 때 어떤 방식으로 할 수 있을까요?

 

 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

 

https://88240.tistory.com/228

 

객체지향개발(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