В настоящее время я ищу фрагмент кода, который сериализует/десериализует данные.
Структура класса выглядит примерно так:
public class Field
{
public abstract void writeField(DataOutputStream out);
public abstract int getFieldID();
...
protected static final int INT_FIELD = 1;
protected static final int BOOL_FIELD = 2;
...
public void write(DataOutputStream out)
{
out.writeInt(getFieldID());
writeField(out);
}
...
}
public class IntField extends Field
{
public int v;
public void writeField(DataOutputStream out)
{
out.writeInt(v);
}
public int getFieldID()
{
return Field.INT_FIELD;
}
}
Мне кажется, что реализация getFieldID не самая лучшая.
Написание абстрактного метода для возврата уникального идентификатора для этого класса кажется неприятным запахом.
Есть ли лучшие способы реализовать это?