2012-05-12 2 views
1

나는 "Refactoring"Martin Fowler에 의해 읽습니다.유형 코드 란 무엇입니까?

이전에 본 적이없는 "유형 코드"라는 용어가 있습니다.

유형 코드 란 무엇입니까?

+3

http://www.refactoring.com/catalog/replaceTypeCodeWithClass.html 아주 좋은 예가 있습니다. – Habib

+0

감사합니다. 질문하기 전에 나는 그 인터넷 검색에서 링크를 읽었다. 고맙습니다. –

답변

3
나타날 수있는 유형의 코드가 union 유형 C에있는 한 문맥

:

이제
Datum v; 

switch (v.type) 
{ 
case T_INT: 
    int_processing(v.u.i); 
    break; 
case T_FLOAT: 
    float_processing(v.u.f); 
    break; 
case T_DOUBLE: 
    double_processing(v.u.d); 
    break; 
} 

, T_LONG의 누락이 출신 :

typedef enum Type { T_INT, T_FLOAT, T_DOUBLE, T_LONG } Type; 

typedef struct Datum 
{ 
    Type type; 
    union 
    { 
     int  i; 
     float f; 
     long l; 
     double d; 
    } u; 
} Datum; 

이 같은 코드에 이르게 고의적으로 바꾸지 않겠습니까? 최근에 추가 되었습니까?이 스위치가 필요한 업데이트를 얻지 못했습니까?

그런 코드가 많고 T_UNSIGNED를 추가해야 할 경우 수정해야 할 장소를 많이 찾아야합니다. C를 사용하면 '유형을 나타내는 클래스 만들기'와 같은 간단한 솔루션이 없습니다. 이 작업을 수행 할 수 있지만 더 많은 객체 지향 언어를 사용하는 것보다 많은 노력이 필요합니다.

그러나 '유형 코드'라는 용어는 예에서 Type 유형을 참조합니다.

+0

예제와 함께 매우 자세하고 쉬운 설명. 이제는 알아 냈습니다. Tahnk 너! –

0

유형 코드는 특정 용도로 제한된 유형을 사용하려는 경우이며, 해결 방법으로 "유형"의 가능한 모든 값을 나타내는 숫자 또는 문자열 상수를 만듭니다.

관련 문제