为什么要这样设计,还是我理解错误
在一些开源项目中,我经常看到这样的类设计代码,成员变量用抽象类或接口
比如lucene中的
final class DocumentWriter {
private Analyzer analyzer;
private Directory directory;
private FieldInfos fieldInfos;
private int maxFieldLength;
...
}
其中 Directory,Analyzer 是抽象类,这样设计的目的是什么?
另外,如果用接口和用抽象类的区别是什么?