【发布时间】:2012-05-14 03:26:52
【问题描述】:
我目前正在查看一段代码,它可以序列化/反序列化数据。
类结构如下所示:
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 的实现方式并不是最好的。
编写一个抽象方法来返回该类的唯一标识符感觉很糟糕。
有没有更好的方法来实现这一点?
【问题讨论】:
-
如果你想要的话,看看我的回答。
标签: java refactoring hierarchy