상세 컨텐츠

본문 제목

객체의 3요소 // 물리 객체와 개념 객체

Back-end/JavaSpringBoot

by 본투비곰손 2022. 7. 27. 22:36

본문

728x90

1. 상태 유지 (객체의 상태)
객체는 상태 정보를 저장하고 유지되어져야 하면 이러한 속성은 변수로 정의되어져야 한다.
이러한 속성값이 바뀜으로 인하여, 객체의 상태가 변경 될 수 있어야 한다.

2. 기능제공 (객체의 책임)
객체는 기능을 제공해야 한다. 이부분은 Method의 제공으로 이루어진다.
이부분은 캡슐화와 연관이 있으며 , 외부로 부터 직접 속성에 접근하여 변경 하는것이 아닌 객체가 제공하는 Method로 기능이 제공 되어져야한다.

3. 고유 식별자 사용 (객체의 유일성)
각각의 객체는 고유한 식별자를 가져야 한다.
예를 들면 카드번호, 계좌번호, 자동차 번호와 같은 속성을 통해서 각각 고유한 값을 줄 수 있으나 이는 이후 DB 에서 Unique Key, 또는 Primary key로도 작성이 가능하다.

물리 객체
실제하는 객체 class로 정의한 객체를 의미한다.
예) 자동차 렌탈 : 자동차, 고객, 직원, 사업장 등등
PC방 관리 : PC, 가구, 직원, 손님 등등

개념 객체
실제로 존재 하지 않는 객체 앞으로 개발할 시스템에서 Service에 해당되며, 이는 business logic을 저리하는 부분을 의미
business logic에서는 여러 객체를 서로 상호작용 하도록 하며, 객체가 제공하는 오퍼레이션Method를 통하여 객체의 속성을 변경 시킨다.
예) 사용자 관리 시스템
사용자 객체의 마지막 접속일자를 이용하여, 계정만료, 비밀번호 초기화, 재등록 처리 등등
ATM 시스템
사용자(Object)의 Action에 따라, 계좌(Object)의 잔고의 속성을 변경하는 입금/출금 logic 처리

객체지향에서의 대부분의 코딩은 각 객체에 기능을 정의하고 business logic을 처리하는 Service에서 객체의 Method를 활용하여, 여러 가지 조건을 확인하고, 객체의 속성을 변경하는 작업이 주된 코딩이 됩니다.
이러한 작업을 하기위해 각 객체의 속성(Variable), 이러한 속성을 변경하거나 상태를 변경할 수 있는 오퍼레이션(Method)을 잘 정의 해야 합니다.

728x90

관련글 더보기