객체지향의 4대 특성

kkjj·2022년 3월 24일
0
  • 내가 따로 공부 하면서 정리하는 블로그라 정확하지 않은 내용이 있습니당

객체지향등장

객체 지향의 개념은 1970년대에 들어서 용어가 나왔으며, 이는 벌써 50년이 넘어가는 역사를 가지고있습니다.
하지만 이전에는 c언어 처럼 실행하고자 하는 순서대로 명령어를 입력해서 실행 되는 "절차 지향"이 주를 이뤘으며,이러한 방법으로 코딩하는 언어들을 "절차지향 언어**"라고 합니다.
이 때에는 프로그램의 단위가 크지않았으며,대체적으로 간단한 Logic을 순차적으로 처리하여 결과를 얻는데 그쳤지만,점점 컴퓨터의 발전과 이로 인하여 프로그램의 복잡도가 증가하면서 이에 들어가는 유지보수,개발 기간 등 다양한 부분에서 비 효유일 발생 하였습니다.

이런 어려움을 해결하기 위해 선택한 방법이 "효과적인 개발방식"을 채택하게 되었고, 이는 이전에 사용하던 흐름에 따른 개발 방식에서 벗어나,

객체지향의 특성인
추상화,상속,은닉,재사용,인터페이스 등 여러곳에서 객체지향으로 개발을 시작 했습니다.

객체지향이란 현실에 존재하는 사물을 있는 그대로 모델링하여,이들의행위와 속성을 정의하고,절차적이 아닌 객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계하기 시작하였습니다.

이는 사물에 대해 객체라고 부르며,해당 사물이 하는 행위를 Method로 정의 하고 해당 사물이 가지는 속성을 변수 Variable라고 정의합니다.

실제 사물을 중심으로 설계를 하기 때문에 기존의 절차지향 보다는 조금더 편리하게 설계가 가능 해졌습니다.

2.객체 설계하기

객체==사물 == object

객체의 3가지 요소

  • 상태 유지 (객체의 상태)
    객체는 상태 정보를 저장하고,유지되어져야 하며 이러한 속성(Variable)은 변수로 정의 되어져야 한다. 이러한 속성값이 바뀜으로 인하여,객체의 상태가 변경될수 있어야한다.
  • 기능 제공(객체의 책임)
    객체는 기능을 제공해야한다. 이부분은 Method의 제공으로 이루어진다.
    이 부분은 캡슐화와 연관이 있으며,외부로부터 직접 속성에 접근하여 변경하는것이 아닌 객체가 제공하는 Method 기능이 제공 되어져야한다.
  • 고유 식별자 제공 (객체의 유일성)
    각각의 객체는 고유한 식별자를 가져야한다.
    예를 들면 카드번호,계좌번호,자동차 번호와 같은 속성을 통해서 각각 고유한 값을 줄수있으며, 이는 이후 Db에서 Unique Key,또는 Primary Key 로도 작성이 가능하다.

물리 객체와 개념 객체

물리 객체

물리적 객체는 실제로 사물이 존재하며, 이를 클래스로 정의한 객체를 의미한다.

Ex)
자동차 렌탈 시스템: 자동차, 고객, 직원 ,사업장,정비소 등등

급여 관리 시스템:직원,월급 통장 등등

Pc방 관리 시스팀:PC,직원,공간,책상,의자

개념객체

이후 우리가 개발할 웹시스템에서 Service에 해당되며,이는 business logic을 처리하는 부분을 의미 합니다.

business logic에서는 여러 객체를 서로 상호 작용 하도록 하며,객체가 제공하는 오퍼레이션 method를 통하여 객체의 속성을 변경 시킵니다.

Ex)

  • 사용자 관리 시스템
    -> 사용자 객체의 마지막 접속일자를 이용하여,계정만료,비밀번호 초기화,재등록 처리 등등

  • ATM시스템
    ->사용자(Object)의 Action에 따라,계좌(Object)의 잔고의 속성을 변경하는,입금/출금 Logic 처리

물리객체와 개념객체

객체지향 에서의 대부분의 코딩은 각 객체에 기능을 정의하고 이를 business logic 을 처리하는 Service에서 객체의 Method를 활용하여,여러 가지 조건을 확인하여,객체의 속성을 변경하는 작업이 주된 코딩이 됩니다.

이러한 작업을 하기 위해서는 각 객체의 속성(Variable) 이러한 속성을 변경하거나 상태를 변경 할수 있는 오퍼레이션(Method)을 잘 정의해야합니다.

profile
백엔드

0개의 댓글