有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于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) 个答案