几乎每个方法都写<T extends Entity>不会是很繁琐吗?
是不是可以把重复的内容写到类的定义中?如:
public interface PesistenceService<T extneds Entity> {
...............
}
是不是可以把重复的内容写到类的定义中?如:
public interface PesistenceService<T extneds Entity> {
...............
}
2018-06-07
这个地方确实是有点重复了。当时的想法是,对于不同类型的Entity,可以允许有不同的实现,比如下面这样的实现:
class Entity1PersistenceService implements PersistenceService<Entity1>
不过最后也没有写成这样。
其实这里的问题可以更深入的说一下,PesistenceService作为存储服务,其实有2个维度:一个维度是存储服务的实现机制,比如文件系统的,数据库的;另一个维度是Entity实体的,课程实体,学生实体等等。两个维度可以交叉。比如在实现中,理论上我们可以把学生实体保存在文件中,而把课程实体保存到数据库中。虽然这样做没什么必要。
具体到实例代码中,由于我们对所有的实体都采用了文件存储方式,PersistenceService上的泛型声明,就显得有些多余了。不过最初的设计初衷是我上面所提到的了。
举报