[객사오] 정적모델 - 타입의 목적

1. 개요

  • 객체지향 패러다임에서는 추상화와 일반화/특수화 계층이 중요하게 작용한다.

2. 일반화와 추상화

  • 일반화는 특수한 것을 더 넓은 의미로 표현하는 것이다.
  • 추상화는 중요한 부분만 강조하고 불필요한 세부사항을 제거하여 단순화하는 것이다. 이러한 방법을 통해 객체를 좀 더 관리하기 쉽게 만들 수 있다.

2.1 일반화/특수화의 예시

예를 들어, 트럼프 인간을 트럼프로 일반화하면

  1. 복잡성을 줄이고
  1. 중요한 특성만을 강조할 수 있습니다.
  • 이렇게 일반화와 특수화를 함께 사용하면 객체를 더 효율적으로 다룰 수 있습니다.

3. 정적 모델

  • 시간에 따라 변하는 객체의 복잡성을 정적인 관점에서 표현하기 위해 타입을 사용합니다.
  • 시간이라는 요소를 제거하고 상태를 단순화함으로써 객체를 더 쉽게 다룰 수 있게 됩니다.

3.1 타입의 목적

  • 타입은 동적으로 변하는 상태를 정적인 모습으로 다룰 수 있게 해주며,
  • 이를 통해 객체의 복잡성을 극복할 수 있습니다.
  • 예를 들어 앨리스의 키가 변하는 것앨리스의 키라는 상태로 단순화하면, 그 상태가 어떻게 변하든 앨리스는 여전히 앨리스로 인식될 수 있습니다.

4. 사용예시 (자바 코드)

class Alice {
    private int height;

    public Alice(int initialHeight) {
        this.height = initialHeight;
    }

    public void eatMushroom() {
        height += 100;
    }

    public void drinkBeverage() {
        height -= 20;
    }

    public int getHeight() {
        return height;
    }
}

public class Example {
    public static void main(String[] args) {
        Alice alice = new Alice(100);
        alice.eatMushroom();
        System.out.println("앨리스의 키: " + alice.getHeight() + "cm"); // 앨리스의 키: 200cm
    }
}

위의 자바 코드 예시는 앨리스의 키가 변하는 상황을 클래스로 표현한 것입니다.

객체의 상태인 키가 변화해도 앨리스는 동일한 객체로 유지되며, 이를 통해 정적 모델을 구현할 수 있습니다.


Uploaded by N2T