학습 일자 : 2023.04.06
프로그램 설계 방법론이자 개념의 일종으로, 객체(Entity) 기본 단위로 구성하는 방식
객체가 서로 상호작용을 하는 방법론
→ 절차지향 : 프로그림의 순차적인 처리를 위주로 설계하는 방법론
→ 프로그램 방법론의 차이일 뿐 절차지향보다 객체지향이 우월한 것은 아님. 필요에 따라 방법론을 선택해서 사용하면 됨
예전에는 복잡한 연산보다는 간단하고 빠른 연산을 요구하는 프로그램이 대부분이었음 (기계 자체가 복잡한 기능을 가지고 있지 않았음.)
→ 물리적인 하드웨어가 빠르게 발전 됨에 따라 소프트웨어의 중요성도 빠르게 올라감. (하드웨어 발전에 상응하는 복잡하고 정확한 계산이 요구되는 소프트웨어 프로그램에 대한 요구의 증가)
→ 기존의 절차 지향 방식으로는 복잡한 구조에 대한 설계가 힘들어짐. (절차 지향의 한계를 느낌)
→ 객체지향 방식이 대안이 됨
장점
단점
‣ | 관련 특성 및 Entity(객체)의 상호 작용을 클래스로 모델링하여 시스템의 추상적 표현을 정의 |
---|---|
‣ | 객체를 상태와 기능으로 묶는 것을 의미 |
‣ | 부모클래스의 모든 기능을 가지는 (=상속 받는) 자식클래스를 설계하는 방법 |
‣ | 부모클래스의 함수를 자식클래스에서 재정의하여 자식클래스의 서로 다른 반응을 구현 |
객체지향 설계에서 지켜야할 5개의 소프트웨어 개발 원칙이다