在java开发的基于REST的应用程序java体系结构中,我应该为请求/验证拆分一个实现,为域拆分一个实现吗?
在过去,假设我有一个Bike的域模型,所以我会创建一个名为Bike的接口,在过去,我会创建一个实现。在该实现中,我将填充验证、JSON规则、数据库映射注释等。 这似乎使系统变得丑陋和脆弱。要映射、显示和变换的旋转太多了 在我进行实验时,我想知道我是否应该创建一个只接受输入和验证数据的实现,并从中创建一个模型实例,以便在一些转换之后在代码中更深层次使用。 因此: 然而,当我这样做的时候,我似乎失去了json转换的全部意义,并且增加了接口地狱的复杂性。因为我看到的是在java开发的基于REST的应用程序java体系结构中,我应该为请求/验证拆分一个实现,为域拆分一个实现吗?,java,rest,Java,Rest,在过去,假设我有一个Bike的域模型,所以我会创建一个名为Bike的接口,在过去,我会创建一个实现。在该实现中,我将填充验证、JSON规则、数据库映射注释等。 这似乎使系统变得丑陋和脆弱。要映射、显示和变换的旋转太多了 在我进行实验时,我想知道我是否应该创建一个只接受输入和验证数据的实现,并从中创建一个模型实例,以便在一些转换之后在代码中更深层次使用。 因此: 然而,当我这样做的时候,我似乎失去了json转换的全部意义,并且增加了接口地狱的复杂性。因为我看到的是 (Type)Bike ->
(Type)Bike -> (Types) BikeWeb, BikeModel -> BikeWebImpl, BikeModelImpl
…乘以1000
我想问的是,我所描述的设计模式是一种典型的模式,在关于该走哪条路的争论中,我应该使用的实际模式,还是我的葫芦用完了
java世界中的每一个REST解决方案似乎都有这个难题,所以我可能应该使用另一个解决方案,我对此也持开放态度。老实说,我不知道为什么需要接口和模型的实现。为什么不使用“自行车”类来表示模型 似乎您正在寻找的是DTO模式。DTO对象表示通过请求或响应发送的有效负载实例。这样的对象可以根据JSON语法和一些值进行验证——我的意思是,一些字段可以设置为保存0到10之间的值。这种验证可以在这个级别上完成。第二类对象是模型本身。这样就有两个班只有自行车和自行车。请看看这个。这可能会使你的疑虑有所澄清
(Type)Bike -> (Types) BikeWeb, BikeModel -> BikeWebImpl, BikeModelImpl