过去我可以说我的域名模型为Bike
,因此我制作了一个名为Bike
的界面,过去我会创建一个。在该实现中,我进行了补救验证,JSON规则,数据库映射注释等。
这似乎使系统变得丑陋和脆弱。如此多的回转来映射,显示和转换。
我想知道(正如我实验)我是否应该创建一个只接受输入并验证数据的实现,并从中创建一个模型实例,以便在进行一些转换后在代码内部更深入地使用。 所以:
(Type)Bike -> BikeWeb, BikeModel
然而,当我这样做时,似乎我失去了json转换的全部要点,并增加了接口地狱的复杂性。因为我看到的是
(Type)Bike -> (Types) BikeWeb, BikeModel -> BikeWebImpl, BikeModelImpl
...次数1000
我问的是设计模式我描述的是一个典型的关于走哪条路的辩论,我应该使用的实际模式,或者我的葫芦
似乎java世界中的每个REST解决方案都存在这种困境,所以也许应该使用其他解决方案,我也可以这样做。
答案 0 :(得分:0)
老实说,我不知道为什么你需要接口以及模型的实现。为什么不使用Bike
类来表示模型?
您正在寻找的是DTO模式。 DTO对象表示通过请求或响应发送的有效负载的实例。这样的对象可以根据JSON语法和一些值进行验证 - 我的意思是某些字段可以设置为保持0到10之间的值。这样的验证可以在这个级别完成。第二种对象是模型本身。这样,只有两个类BikeDTO
和Bike
。请看一下这个article。它可能会揭示你的怀疑。