ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OOP 객체지향처럼 생각해보기 2
    책/객체지향의 사실과 오해 2020. 12. 21. 20:43

     

    인터페이스 정리하기


    • 전 글에서 우리가 얻어낸 것은 객체들의 인터페이스입니다.
    • 객체가 수신한 메시지가 객체의 인터페이스를 결정한다는 사실을 기억해야 합니다.

     

    • 메시지가 객체를 선택했고, 선택된 객체는 메시지를 자신의 인터페이스로 받아들입니다.
    • 각 객체를 협력이라는 문맥에서 떼어내어 수신 가능한 메시지만 추려내면 객체의 인터페이스가 됩니다.
    • 객체가 어떤 메시지를 수신할 수 있다는 것은 그 객체의 인터페이스 안에 메시지에 해당하는 오퍼레이션이 존재한다는 것을 의미합니다.

     

    각 객체별로 설명하면 다음과 같습니다.

    • 손님 객체의 인터페이스 안에는 ‘제품을 주문하라’ 라는 오퍼레이션이
    • 메뉴판 객체의 인터페이스 안에는 ‘메뉴 항목을 찾아라’ 라는 오퍼레이션이
    • 바리스타 객체의 인터페이스 안에는 ‘커피를 제조하라’ 라는 오퍼레이션이
    • 커피 객체는 ‘생성하라’ 라는 오퍼레이션을

     

     

    • 실제로 소프트웨어의 구현은 객체들을 포괄하는 타입을 정의한 후 식별된 오퍼레이션을 타입의 인터페이스에 추가해야 합니다.

     

    • 객체의 타입을 구현하는 일반적인 방법은 클래스를 이용하는 것입니다.
    • 협력을 통해 식별된 타입의 오퍼레이션은 외부에서 접근 가능한 공용 인터페이스의 일부라는 사실을 기억해야 합니다.
    •  인터페이스에 포함된 오퍼레이션 역시 외부에서 접근 가능하도록 공용(public)으로 선언돼 있어야 합니다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class Customer {
        public void order(String menuName) {}
    }
    class MenuItem {
        
    }
    class Menu {
        public MenuItem choose(String name) {}
    }
     
    class Barista {
        public Coffe makeCoffe (MenuItem menuItem) {}
    }
     
    class Coffee {
        public Coffee (MenuItem menuItem) {}
    }
    cs

     

     

     

    참조


    객체지향의 사실과 오해

     

    생각하라, 객체지향처럼

     

    ' > 객체지향의 사실과 오해' 카테고리의 다른 글

    OOP 객체지향처럼 생각해보기  (0) 2020.12.21
Designed by Tistory.