基于bean继承的javaspring类设计
导言
让我们假设我在我光鲜亮丽的新店里卖的是漂亮的双轮车,bycicles和motorcicles。我喜欢跟踪事情,所以我开发了一个Spring应用程序来支持我,以防我忘记一些事情和事情
在此应用程序中,有一个抽象的车辆。java类,由另外两个java类扩展,它们表示我正在销售的具体对象:
自行车延伸车辆 摩托车延伸车
当我实际销售两个轮子时,我转到应用程序并单击一个按钮,该按钮将两个轮子设置为在DB中销售
问题:
对于JSP、服务和DAO来说,什么是一个好的Spring设计,可以在不重复太多内容的情况下最好地处理从JSP到DAO的继承强>
我正在寻找“最佳实践”设计,一种可伸缩的设计,它可以方便维护
电流引线
想法1
特定JSP调用通用Spring控制器的特定方法,该方法调用特定Spring服务,该服务调用特定DAO并执行操作
我应该为每种产品类型编写不同的JSP吗?一辆自行车和一辆单独的摩托车?每个“设置旧”按钮都将直接指向正确的服务
在这种情况下,如果我的产品种类增加,会发生什么?我需要把所有的东西都乘以我拥有的产品的数量吗
例如,如果我们假设滑板、滚轴、旱冰鞋和汽车,类和一些方法的草图将是:
JSP:
- 卡片细节。jsp
- 滑板细节。jsp
- 滚轴细节。jsp
- Rollerskates详细信息。jsp
- 自行车尾巴。jsp
- 摩托车尾巴。jsp
控制器:
- @控制器类DetailController。爪哇:
- 无效设置旧(汽车)李>
- void setSold(滑板)李>
- 空套(滚柱)李>
- void setSold(滚动片滚动片)李>
- 自行车李>
- 车辆(摩托车)李>
服务:
- @服务类CarService。爪哇
- @服务级滑板服务。爪哇
- @服务类RollersService。爪哇
- @服务类RollersKateService。爪哇
- @服务级自行车服务。爪哇
- @服务级摩托车服务。爪哇
DAO:
- @存储库类CarDao。爪哇
- @存储库类SkateboardDao。爪哇
- @存储库类RollersDao。爪哇
- @存储库类RollerSkatesDao。爪哇
- @存储库类BicycleDao。爪哇
- @存储库类motorkedao。爪哇
每次我添加一种新的产品类型,这个列表就会越来越大
想法2
泛型JSP调用泛型Spring控制器的泛型方法,该方法调用标识对象类型的泛型Spring服务,然后调用将调用特定DAO并执行操作的特定Spring服务
我是否应该编写一个通用JSP来处理任何类型的两个轮子,然后让服务将请求分派给正确的服务?感觉这是做事情最具伸缩性的方式,但我不能想出一个适合所有事情的设计。 为给定的产品寻找特定的服务似乎有点脏,很难维护。我的实验性实现包括将对象类映射到服务,或者编写一个大的切换案例,根据对象特征返回正确的spring服务
但这种结构看起来更干净、更具可扩展性。如果添加更多产品,简单类模型将变为:
JSP:
- 细节。jsp
控制器:
- @控制器类DetailController。爪哇:
- 固定支架(车辆)
服务:
- @服务抽象类服务。爪哇
- @服务类CarService。爪哇
- @服务级滑板服务。爪哇
- @服务类RollersService。爪哇
- @服务类RollersKateService。爪哇
- @服务级自行车服务。爪哇
- @服务级摩托车服务。爪哇
DAO:
- @存储库抽象类VehicleDAO。java(摘要)
- @存储库类CarDao。爪哇
- @存储库类SkateboardDao。爪哇
- @存储库类RollersDao。爪哇
- @存储库类RollerSkatesDao。爪哇
- @存储库类BicycleDao。爪哇
- @存储库类motorkedao。爪哇
共 (0) 个答案