ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [단상]객체지향의 사실과 오해를 읽고...
    jabsiri...... 2016. 7. 26. 15:57

    객체에 대한 이해

    객체지향의 사실과 오해 를 읽고


    목차

    1. 협력
    2. 역할
    3. 책임
    4. 객체지향 설계 기법

    협력

    협력은 한 사람이 다른 사람에게 도움을 요청 할 때 시작된다.


    협력

    커피 주문이라는 협력에 참여하는 모든 사람들은 정확하게 주문되고 주문된 커피가 손님에게 정확하게 전달될 수 있도록 맡은바 역활책임을 다한다.

    요청

    손님 ->(주문) 케시어 ->(커피 제조 요청) 바리스타
    

    응답

    손님 (커피 완성)<- 케시어 (커피 완성)<- 바리스타
    

    협력

    결과적으로 협력은 다수의 요청과 응답으로 구성되며 전체적으로 협력은 다수의 연쇄적인 요청과 응답의 흐름으로 구성된다.


    역할

    사람들은 다른 사람과 협력 하는 과정 속에서 특정한 역할(role)을 부여 받는다.


    역할

    케페테리아에서 손님이 주문한 커피를 제조하기 위해 캐시어와 바리스타가 협력 하는 과정속에는 손님, 캐시어, 바리스타라는 역할이 존재 한다.

    역할은 어떤 협력에 참여하는 특정한 사람이 협력 안에서 차지 하는 책임이나 임무를 의미 한다.

    손님 : 커피 주문 책임
    캐시어 : 손님으로 부터 주문 받는 책임
    바리스타 : 주문된 커피를 제조하는 책임


    책임

    역할이란 단어는 의미적으로 책임이라는 개념을 내포 한다.


    책임

    사람들이 협력을 위해 특정한 역할을 맡고 역할에 적합한 책임을 수행 한다는 사실은 몇가지 중요한 개념을 제시한다.

    • 여러 사람이 동일한 역할을 수행 할 수 있다.
    • 역할은 대체 가능성을 의미한다.
    • 책임을 수행하는 방법은 자율적으로 선택 할 수 있다.
    • 한 사람이 동시에 여려 역할을 수행 할 수 있다.

    역할, 책임, 협력

    사람이라는 단어를 객체로, 에이전트 요청을 메시지로,

    에이전트가 요청을 처리 하는 방법을 메소드로 바꾸면 대부분의 설명을 객체지향이라는 문맥으로 옮겨 올 수 있다.


    객체지향의 본질

    • 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시스템을 분할 하는 방법이다.

    • 자율적인 객체란 상태행위를 함께 지니며 스스로 자기 자신을 책임지는 객체를 의미한다.

    • 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합인다.

    • 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는데 적합한 메서드를 자율적으로 선택한다.


    객체지향 설계 기법

    책임-주도 설계

    (Responsibility-Driven Design)

    협력에 필요한 책임들을 식별하고 적합한 객체에게 책임을 할당하는 방식이다.


    객체지향 설계 기법

    디자인 패턴

    (Design Pattern)

    전문가들이 반복적으로 사용해는 해결 방법을 정의 놓은 설계 템플릿의 모음이다.


    객체지향 설계 기법

    테스트-주도 개발

    (Test-Driven Development)

    테스트를 먼저 개발하고 테스트를 통과하는 구체적인 코드를 추가하면서 애플리케이션을 완성해가는 방식을 따른다.


    추천 도서

    한글서적

    객체지향의 사실과 오해 - 조영호 추천

    객체지향과 디자인 패턴 - 최범균

    UML 실전에서는 이것만 쓴다. - 로버트 C. 마틴

    영문서적

    Applying UML and Patterns - Craig Laman

    Agile Software Development - 로버트 C. 마틴



    'jabsiri......' 카테고리의 다른 글

    REST API 디자인 가이드  (0) 2016.03.15
    Hibernate....  (1) 2015.09.10
    VO와 DTO  (2) 2015.09.10
Designed by Tistory.