ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OOP/UML] Principles
    Learn/OOP&UML 2022. 8. 6. 23:33

    # Basic Principles of Object-Oriented

    1. Abstraction

    2. Encapsulation

    3. Inheritance

    4. Polymorphism

    5. Composition

     

    1. Abstraction

    하려는 일에 관련된 것만 남겨두고, 관련 없는건 지우는 것. 

    2. Encapsulation

    내부적으로 어떻게 동작하는지 몰라도 사용할 수 있게 만드는 것. (Information hiding)

    ex. 자동차 내연기관이 어떻게 작동하는지 몰라도 운전 방법만 알면 가능

     

    get/set을 통해서 데이터를 얻거나 수정

     

    <예시>

    아래 예시에서 client는 interface를 통해서만 데이터에 접근 가능

    operation이 어떤식으로 구현(implement)되었는지는 전혀 알 필요 없음. 

     

    3. Inheritance

    UML쪽에서는 generalization이라고 부름. 

    "is-a" 관계

    공통의 property는 윗쪽에서 한 번만 정의하고 아래쪽에서는 다시 정의하지 않고 상속받음. 

    4. Polymorphism

    A, B, C 세 가지로 구현했지만 접근하는 interface는 하나만 있음. 

    context에 맞게 알맞은 implementation이 선택됨. 

     

    <예시>

    상황은 여러가지지만 클라이언트는 getAge()라는 하나의 interface만 사용

     

    5. Composition

    Polymorphism을 구현하는 좋은 방법

    "has_a" 관계를 가짐

     

    <예시>

    # QUIZ

    정답 2번. 구현을 어떻게 했는지 모르더라도 사용할 수 있게 만드는 것. 

     

    정답 4번. 만약 질문지에 composition이 있었으면 헷갈릴 수 있음. 

    답도 두 개가 다 될 수 있음. 

    'Learn > OOP&UML' 카테고리의 다른 글

    [OOP/UML] Class Diagram  (0) 2022.08.12
    [OOP/UML] Use Case Diagram  (0) 2022.08.10
    [OOP/UML] UML  (0) 2022.08.09
    [OOP/UML] Object-Oriented Development  (0) 2022.08.08
    [OOP/UML] Object Oriented  (0) 2022.08.02

    댓글

Designed by Tistory.