ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ch2. 이상한 나라의 객체
    코딩은 주댕이로/객체지향의 사실과 오해 2022. 3. 9. 01:06

    인간은 세상에 존재하는 다양한 객체를 식별하고 분류함으로써 세상을 이해한다.

    아기랑 막대기 실험으로 증명됨ㅋㅋ

    상태와 프로퍼티

    모든 객체의 상태는 단순한 값과 객체이ㅡ 조합으로 표현할 수 있다. 상태를 구성하는 모든 특징을 통틀어 객체의 프로퍼티라고 한다.

    객체의 프로퍼티는 단순한 값인 속성과 다른 객체를 가리키는 링크라는 두 가지 종류의 조합으로 표현할 수 있다.

    상태 캡슐화

    객체는 상태를 캡슐 안에 감춰둔 채 외부로 노출하지 않는다. 객체가 외부에 노출하는 것은 행동뿐이며, 외부에서 객체에 접근할 수 있는 유일한 방법 역시 행동뿐이다.

    동등성(Equality)과 동일성(Identical)

    행동이 상태를 결정한다

    초보자들은 먼저 객체에 필요한 상태가 무엇인지를 결정하고 그 상태에 필요한 행동을 결정한다. → 나쁜 영향을 끼친다.

    1. 캡슐화가 저해된다.
    2. 객체가 고립된다.
    3. 재사용성이 저하된다.

    객체지향 설계는 애플리케이션에 필요한 협력을 생각하고 협력에 참여하는 데 필요한 행동을 생각한 후 행동을 수행할 객체를 선택하는 방식으로 수행된다.

    책임-주도 설계(Responsibility Driven Design)은 협력이라는 문맥 안에서 객체의 행동을 생각하도록 도움으로써 응집도 높고 재사용 가능한 객체를 만들 수 있게 한다.

    은유와 객체

    ‘객체지향이란 현실 세계의 모방'이라는 것은 잘못된 것이다.

    현실 세계의 객체들이 스스로 하지 못하는 행동을 소프트웨어 객체는 할 수 있다.

    의인화

    현실 속에서는 수동적인 존재가 소프트웨어 객체로 구현될 때는 능동적으로 변한다.

    현실의 전화기는 스스로 통화버튼을 누르지 못한다.

    은유

    객체지향의 세계와 현실 세계 사이에는 상관이 없지 않다. 모방이나 추상화의 수준이 아닌 다른 관점에서 유사성을 가지고 있다.

    소프트웨어 객체에 대한 현실 객체의 은유를 효과적으로 사용할 경우 표현적 차이를 줄일 수 있으며, 이해하기 쉽고 유지보수가 용이한 소프트웨어를 만들 수 있다. 바로 이러한 이유로 모든 객체지향 지침서에서는 현실 세계인 도메인에서 사용되는 이름을 객체에게 부여하라고 가이드하는 것이다.

    '코딩은 주댕이로 > 객체지향의 사실과 오해' 카테고리의 다른 글

    Ch7. 함께 모으기  (0) 2022.04.04
    Ch6. 객체 지도  (0) 2022.03.09
    Ch5. 책임과 메시지  (0) 2022.03.09
    Ch3. 타입과 추상화  (0) 2022.03.09
    Ch1. 협력하는 객체들의 공동체  (0) 2022.03.09
Designed by Tistory.