1. 개요
- 객체지향 패러다임에서는 추상화와
일반화/특수화 계층
이 중요하게 작용한다.
2. 일반화와 추상화
- 일반화는 특수한 것을
더 넓은 의미로 표현
하는 것이다.
- 추상화는
중요한 부분만 강조
하고불필요한 세부사항을 제거
하여단순화
하는 것이다. 이러한 방법을 통해 객체를 좀 더 관리하기 쉽게 만들 수 있다.
2.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
'자바 > 객사오' 카테고리의 다른 글
[객사오] 일반화/특수화 관계 (0) | 2023.08.16 |
---|---|
[객사오] 슈퍼타입과 서브타입 (0) | 2023.08.16 |
[객사오] 그래서 결국 타입은 추상화다. (0) | 2023.08.16 |
[객사오] 동적모델, 정적모델 (0) | 2023.08.16 |
[객사오] 클래스와 타입 (0) | 2023.08.16 |