객체와 객체지향적 설계 방법

Jang990·2023년 4월 4일
0
post-custom-banner

동등성과 동일성

동등성은 ==를 말한다
동일성은 .equal를 말한다.

객체는 자유롭다.
객체는 자유롭기에 상태는 항상 변한다.

10년전의 너와 10년 후의 너는 다른 객체인가?
아니다. 같은 객체이다.
이렇기에 동등성은 객체를 판단하는 기준이 될 수 있다.

동일성은 값을 비교하는 것이다.

객체란?

객체란 무엇일까?
객체란 개발자가 프로그램 속에서 창조한 새로운 사물 또는 개념을 말한다.
실세계에 사물 또는 개념을 모방하는 것이 아니라 새롭게 창조된 것이다.

하지만 창조된 객체를 실세계에 존재하는 객체를 이용하여 묘사하면서 창조된 객체의 특성을 상기시킬 수 있다면 묘사하라.

객체를 전화기와 같이 수동적인 존재로 생각하지마라.
객체는 실세계가 아닌 소프트웨어 세계에서는 스스로 상태를 변경한다.
예를들어 실세계 전화기는 사람이 없으면 전화를 걸 수 없다.
하지만 소프트웨어 세계 전화기는 스스로 전화를 걸 수 있다.
객체를 의인화해서 사람처럼 생각하자.

객체는 다른 객체와 협력하기 위해 존재한다.
객체의 행동은 객체가 협력에 참여하기 위한 유일한 방법이다.

행동은 객체의 상태를 변경시킨다.

객체지향 설계를 할 때 주의할 점은 상태를 떠올리고 해당 객체를 만들면 안된다.
행동에 초점을 맞춰야한다.

객체지향의 설계

객체지향의 설계는 다음과 같이 진행된다.
1. 애플리케이션에 필요한 협력을 생각
2. 협력에 참여하는데 필요한 행동을 생각
3. 행동을 수행하는데 필요한 객체를 선택
4. 행동을 결정한 후에야 행동에 필요한 정보를 고려한다. 이 과정에서 상태가 결정된다.

따라서 먼저 행동을 결정한 후에 상태를 결정한다.

출처

도서 - 객체지향의 사실과 오해

profile
공부한 내용을 적지 말고 이해한 내용을 설명하자
post-custom-banner

0개의 댓글