1. 타입의 정의객체가 동일한 타입으로 분류되려면 공통의 행동을 가져야 한다. 여기서 실세계의 트럼프 카드와 트럼프 인간의 차이점이 발생한다.2. 트럼프 타입트럼프 타입은 '납작 엎드릴 수 있고 뒤집어질 수 있다'는 내연으로 정의된다.3. 트럼프 인간 타입트럼프 인간 타입은 트럼프 타입이 할 수 있는 모든 것을 할 수 있고, 추가로 '걸을 때마다 몸이 종이처럼 좌우로 펄럭일 수 있다'는 특화된 행동을 가진다.4. 일반화/특수화 관계트럼프 인간은 트럼프의 특수한 형태로, 모든 트럼프 인간은 트럼프이지만 모든 트럼프는 트럼프 인간이 될 수 없다. 이 관계를 일반화/특수화(generalization/specialization) 관계라고 부른다. Uploaded by N2T
1. 개요객체지향에서 타입 간의 일반화/특수화 관계는 매우 중요한 개념이다.이 관계는 개념이 포괄적이거나 구체적인지에 따라 분류된다.2. 일반화일반화는 더 포괄적인 의미를 가진 타입을 나타낸다.예를 들어, "트럼프"는 "트럼프 인간"보다 더 일반적인 개념입니다.일반적인 타입은 특수한 집합을 부분집합으로 가지며 , 더 큰 외연 집합과 더 적은 수의 행동을 가집니다.3. 특수화특수화는 더 구체적인 의미를 가진 타입을 나타냅니다."트럼프 인간"은 "트럼프"보다 더 특수한 개념입니다.특수한 타입은 더 작은 외연 집합을 가지지만, 더 많은 수의 행동을 가집니다.4. 행동의 중요성일반화/특수화 관계에서 중요한 것은 객체의 상태가 아닌 행동입니다.일반적인 타입은 특수한 타입이 가진 일부 행동만을 가집니다.특수한 타입..
슈퍼타입과 서브타입일반화/특수화 관계: 좀 더 일반적인 타입(슈퍼타입)과 좀 더 특수한 타입(서브타입) 간의 관계중요한 것: 두 타입 간의 관계가 행동에 의해 결정됨(행위적 호환성)행위적 호환성서브타입은 슈퍼타입의 행위와 호환되어야 함서브타입은 슈퍼타입을 대체할 수 있어야 함일반화/특수화 관계 표기법슈퍼타입: 상단, 서브타입: 하단, 속이 빈 삼각형으로 연결서브타입에서는 슈퍼타입과 중복된 행위를 생략 가능서브타입에게 슈퍼타입의 행동이 자동으로 상속됨// 슈퍼타입 클래스 정의 class Trump { void flatten() { System.out.println("납작 엎드릴 수 있다."); } void flip() { System.out.println("뒤집어질 수 있다."); } } // 서브타입 클..
1. 개요객체지향 패러다임에서는 추상화와 일반화/특수화 계층이 중요하게 작용한다.2. 일반화와 추상화일반화는 특수한 것을 더 넓은 의미로 표현하는 것이다.추상화는 중요한 부분만 강조하고 불필요한 세부사항을 제거하여 단순화하는 것이다. 이러한 방법을 통해 객체를 좀 더 관리하기 쉽게 만들 수 있다.2.1 일반화/특수화의 예시예를 들어, 트럼프 인간을 트럼프로 일반화하면 복잡성을 줄이고 중요한 특성만을 강조할 수 있습니다. 이렇게 일반화와 특수화를 함께 사용하면 객체를 더 효율적으로 다룰 수 있습니다.3. 정적 모델시간에 따라 변하는 객체의 복잡성을 정적인 관점에서 표현하기 위해 타입을 사용합니다.시간이라는 요소를 제거하고 상태를 단순화함으로써 객체를 더 쉽게 다룰 수 있게 됩니다.3.1 타입의 목적타입은 ..
1. 개요타입은 객체의 동적인 특성을 추상화하는 역할을 합니다.프로그래머가 복잡한 세부 사항을 걱정하지 않고 좀 더 높은 수준에서 작업할 수 있게 합니다.2. 타입의 추상화 역할2.1. 정적 관점에서의 추상화객체의 특정 상태를 추상화하여 복잡성을 줄이고, 구체적인 세부 정보 대신 단순한 뷰를 제공합니다.예시앨리스의 키가 100센티미터인 것은 중요할 때가 있으나, 키가 변할 수 있다는 가능성에 집중하는 것이 더 간단합니다. (구체적인 정보를 단순화)2.2. 동적 관점에서의 추상화객체의 변화 가능성에 집중하며, 키의 변화와 같은 특정 상태 변화를 단순화하여 다룹니다.예시앨리스가 버섯을 먹거나 음료를 마시거나 부채질을 할 때마다 키가 변할 것입니다. 변하는 행위 에 집중합시다.!실제로 키가 어떤 값을 가지는지..
1. 동적 모델정의시스템이나 객체의 행동을 시간에 따라 어떻게 변화하는 나타내는 모델입니다.구성요소상태객체의 특정 시점에서의 상태를 표현행동객체가 어떻게 행동하는지, 상태가 어떤식으로 변화하는지 표현함.시퀀스 다이어그램객체 간의 상호작용을 시간 순서대로 나타냄왜 동적 모델을 사용하는가?시뮬레이션실제 시스템의 실행의 흐름을 어느정도 예측할 수 있습니다.고로,,,디버깅코드에는 일련의 시나리오가 아예 배제될 수는 없습니다.일련의 시나리오상의 오류를 찾고 수정하기 용이합니다.2. 정적 모델정의시스템의 구조적인 측면을 시간에 독립적으로 나타내는 모델입니다.구성요소클래스 다이어그램객체 타입 관계 속성 등을 표현하는 UML 도구인터페이스가능한 메서드와 속성을 정의하는 방법타입객체를 분류하기 위해 사용, 클래스는 타입..