对java.util.Date中的getTime和getTimeImpl方法感到困惑吗?
我对代码段有点困惑。 他为什么不这样写呢? 我认为它可能更可读对java.util.Date中的getTime和getTimeImpl方法感到困惑吗?,java,design-patterns,java.util.date,Java,Design Patterns,Java.util.date,我对代码段有点困惑。 他为什么不这样写呢? 我认为它可能更可读 public long getTime() { return getTimeImpl(); } private final long getTimeImpl() { if (cdate != null && !cdate.isNormalized()) { normalize(); } return fastTime; } 我认为原因是您可以扩展Date类并重写方
public long getTime() {
return getTimeImpl();
}
private final long getTimeImpl() {
if (cdate != null && !cdate.isNormalized()) {
normalize();
}
return fastTime;
}
我认为原因是您可以扩展Date类并重写方法getTime()。因为
Date.writeObject()
也调用Date.getTimeImpl()
编辑:是的,
getTime()
只调用getTimeImpl()
。我认为getTimeImpl()
是将来可以更改的私有实现,而getTime()
是不能更改的公共API。这在我看来不像任何模式。这可能只是开发人员做事的方式。我想到的一件事是,可以将可重写方法getTime()
与业务逻辑分离,即getTimeImpl()
。为什么writeObject()不能调用getTime?我认为getTimeImpl()是不必要的。另外,我在看到你的昵称后知道这个昵称可以是中文的。除了你真的不能,因为getTimeImpl()
也是private
,所以派生类看不到它。
public long getTime(){
if (cdate != null && !cdate.isNormalized()) {
normalize();
}
return fastTime;
}