几乎每个方法都写<T extends Entity>不会是很繁琐吗?

来源:2-8 服务接口

taoy

2018-06-07 10:01

是不是可以把重复的内容写到类的定义中?如:

public interface PesistenceService<T extneds Entity> {

        ...............

}

写回答 关注

2回答

  • 成富
    2018-06-22 17:24:34
    已采纳

    这个地方确实是有点重复了。当时的想法是,对于不同类型的Entity,可以允许有不同的实现,比如下面这样的实现:

    class Entity1PersistenceService implements PersistenceService<Entity1>

    不过最后也没有写成这样。

    其实这里的问题可以更深入的说一下,PesistenceService作为存储服务,其实有2个维度:一个维度是存储服务的实现机制,比如文件系统的,数据库的;另一个维度是Entity实体的,课程实体,学生实体等等。两个维度可以交叉。比如在实现中,理论上我们可以把学生实体保存在文件中,而把课程实体保存到数据库中。虽然这样做没什么必要。

    具体到实例代码中,由于我们对所有的实体都采用了文件存储方式,PersistenceService上的泛型声明,就显得有些多余了。不过最初的设计初衷是我上面所提到的了。

    taoy

    非常感谢!代码构建与实现的想法和实现牛!

    2018-06-23 08:13:31

    共 1 条回复 >

  • 坚持2016
    2018-06-10 21:26:59

    可以去掉重复内容

Java9之模块系统

实例驱动的Java 9平台模块系统实战开发

18773 学习 · 15 问题

查看课程

相似问题