ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Structured Paradigms 과 Object paradigm
    C++ 2014. 3. 20. 20:46

    Structured paradigm에서는 모든 작업을 main에서 처리하는 것으로 간주한다. 그러나 이렇게 되는 경우 main이 너무 길어지고 복잡해지므로 이것을 작은 기능으로 분리를 한다. 그리고 이 작은 기능들은 하나의 일만을 처리하도록 한다.

    따라서 주식 투자를 하는 트레이딩 프로그램을 만든다고 하면

    1. 주식을 검색하여 가격을 알아보는 기능
    2. 전체 주식을 실시간으로 출력하는 기능
    3. 주식을 사고 파는 기능
    4. 개인의 현금과 주식 보유를 검색하여 출력하는 기능

    이런 기능들을 일련의 순서로 만들면 사용자가 전체 가격을 출력하고 그 다음에 특정 주식의 가격을 보고 나서 주식을 사고 파는 것을 결정하고 최종적으로 개인 계좌의 밸런스를 조회하는 그런 프로그램이 된다.

    객체 지향의 개념에서 보면

    이런 무엇을 하는가 하는 개념이 아니라 실세계를 물리적인 모델로 쪼개는 작업을 한다. 따라서 주로 기능의 동사보다는 실체인 명사를 대상으로 하게 된다.

    주식의 예에서 보면

    주식 거래라는 실세계는

    주식이란 실체가 존재하며 주식을 거래하는 고객이 있고 그 고객은 자신의 계좌를 가지고 있다.

    그런 주식을 사고 파고 마켓이 존재하게 된다.

    이러한 실체들이 바로 Class로 정의가 될 수가 있으며 이러한 Class가 특화된 것이 즉 객체이다.

    주식을 예를 들면 주식이란 클래스는 주식 시세를 갖는데 클래스에서 보면 이 시세란 정의될 수 있는 것이 아니기 때문에 추상적일 수 밖에 없다. 이 시세는 시시각각으로 변한다. 어떤 주식의 지금 현재 가격이란 바로 주식이란 클래스가 특수화된 객체가 되는 것이다. 인스턴스라는 것과 객체의 차이점은 객체는 클래스가 객체화된 모든 인스탄스를 말할 수가 있다. 그러나 인스탄스는 유일한 객체라고 보면 된다.

    즉 집이라는 실체를 생각해볼 때, 집을 짓기 위해 구상하는 설계도는 클래스가 된다. 그 설계도에 의해서 지어진 개개의 모든 집들을 객체라 한다. 그 객체 중 지금 내가 살고 있는 이 집이 바로 인스턴스가 된다.

    이를 이론적으로 접근을 하면 Class, Component, Behavior, Property 로 접근을 하게 된다.

    1. Class

      실체를 일반화 혹은 객체화 시킨 것으로 집이라는 클래스를 정의하면 집은 기둥도 있고 방도 있는데 거기에는 사람들이 살 수 있다. 이런 식으로 집이라고 하는 실체를 객체화 시켜 놓은 것을 클래스라 정의한다.

       

      이러한 클래스를 철수가 사는 집으로 만들 때 이런 집을 객체라고 부를 수가 있다.

       

      주식에서 보면 주식 시세라고 하는 것을 클래스로 만들면 각각의 종목의 시세는 객체가 될 수가 있는 것이다.

       

    2. Component

      Component 란 클래스를 구성하는 요소로 본질적으로 클래스와 동일하다. 위의 집의 예에서 기둥, 유리 이런 것들은 집이란 클래스를 구성하는 Component가 된다. 이런 Component는 또 자신의 하위 Component를 가질 수 있는데 창문이라고 하는 것은 유리와 틀이라는 것을 하위 컴포넌트로 가질 수가 있다.

       

    3. Property

      는 객체를 특징짓는 것을 의미하는 데 집은 공장하고는 다른 특징을 갖는다. 공장을 짓는 것과 집을 짓는 건 다르다. 그러면 집이 공장과 다른 특징이 Property가 된다.

      주식 시세에서 보면 그 주식의 이름, 회사, 현재 가격 이런 겻들이 Property가 될 수가 있다.

       

    4. Behavior

      객체가 하는 일을 정의하는 것이다.

      만일 부동산 업자에게 집은 사고 파는 행위가 주요한 행위가 된다. 집에 사는 사람은 집에서 사는 것이 행위가 될 수있다. 주식에서 보면 주식을 사고 파는 것, 주식을 분석하는 것 이런 것들이 행위가 될 수가 있다.

    'C++' 카테고리의 다른 글

    Big-O Notation  (0) 2014.03.20
    Volitile Keyword  (0) 2014.03.09
    Object Pool  (0) 2014.03.09
    Dynamic Memory Allocation and Memory Leak  (0) 2014.03.02
    Rvalue reference (우측값 참조)  (0) 2014.02.28
Designed by Tistory.