Я читаю "Refactoring" от Martin Fowler.Что такое код типа?
Существует термин «код типа», который я никогда раньше не видел.
Что такое код типа?
Я читаю "Refactoring" от Martin Fowler.Что такое код типа?
Существует термин «код типа», который я никогда раньше не видел.
Что такое код типа?
Один контекст, в котором код типа может появиться в C с типом union
:
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;
Это приводит к коду, как:
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 от переключатель преднамеренный или нет? Был ли он недавно добавлен, и этот коммутатор не получил необходимого обновления?
Когда вы получаете много кода, и вам нужно добавить T_UNSIGNED, вам нужно найти много мест для исправления. С C у вас нет такого простого решения, как «создать класс для представления типа». Это можно сделать, но требуется больше усилий, чем с большим количеством объектно-ориентированных языков.
Но термин «код типа» относится к примеру типа Type
в примере.
Очень подробное и простое объяснение с примером. Теперь я понял это. Тыкн ты! –
Код типа, когда вы хотите иметь свой собственный ограниченный тип для какой-либо цели и, как работа, создать кучу числовых или строковых констант, которые представляют все возможные значения вашего «типа».
http://www.refactoring.com/catalog/replaceTypeCodeWithClass.html у него есть очень хороший пример – Habib
Благодарим за комментарий. Перед вопросом, я прочитал эту ссылку от googling. Спасибо. –