当前位置:港澳台超级中特网 > 港澳台超级中特网 >

编程中的各种闲谈

发表时间: 2018-10-19

近些年接触的项目以及自己实现的都是这样的结构,定义一个功效模块包,包下面放 controller, service, entity, dao 等包。

那么咱们定义的 service 是否也会被用来被多次实现呢?不,在我编程的这多少年始终就是一个 service 接口只实现一次。

在 spring 框架中,自身定义了很多接口,并且有不同的实现来实现不同的任务,实现了很多灵活的设计。

dao跟entity 是全体项目可能访问的,处理所有实体或者数据库的所有对象,象征着任何一个功能都应该有权限来拜访所有的 entity,这块是否应该独破出来呢?

service 是否一定要定义 interface

在学习ssh(spring, struts2, hibernate)时,老师教在 service 层要定义接口,再去实现此接口,方便解耦。

Entity 是否要跟模块一起

标签 接口 名目 定义 业务 措施

开始思考这种实现是否公平。service 之间调用是不应该的,一个 service 应该实现一个完整功能,而浮现在两个 service 去实现子功能那须要考虑是否应当从新设计 service。

那么为什么咱们还坚持需要 service 接口呢?并且在利用 ide 的时候不能直接定位到方法内容也是个很难堪的问题,何况还得去维护两个类呢。

复杂的业务逻辑会呈现更多这种情形,有时看到会出现 service 调用,之前以为 service 调用没什么,最近遇到一个名目 service 调用后都很难找到业务,

当然这并不是说接口没用,例如我通过配置应用不同的service实现来实现不同业务规则。在目测只有一个实现类的情况下不认为增添接口能带来灵活。

所以近多少年我编写的框架中抛弃了 service 接口的定义。

大多数的功能在本模块包定义的类中都可能实现,但问题是总有一些功能是需要其余模块包中的 dao, entity 的。