Spring MVC 为两种不同图片类别存储图像的服务方法

r3i60tvu  于 2023-10-24  发布在  Spring
关注(0)|答案(1)|浏览(107)

我有一个项目来存储出租物业的图像。该图像将为卧室和浴室。
| 租赁|
| --|
| BedroomImageId|
| BathroomImageId|

// Service class method
public void uploadRentalImage(Long rentalId, MultipartFile file) {
     String imageId = UUID.randomUUID().toString(); // BedroomPictureId or BathroomPictureId will be created here
     // Then store the imageId to Rental; depending on whether it is BedroomPictureId or BathroomPictureId
}

我有两个逻辑depedning对图像是否是BathroomImageId和BedroomImageId,我需要告诉uploadRentalImage.我有各种方法在脑海中告诉uploadRentalImage方法,我更新的图像.任何人都可以推荐告诉uploadRentalImage什么类型的图像我更新的最佳方法.
我可以像下面这样创建两个服务类方法,但它会在两个方法中重复太多相同的逻辑,并且如果我有更多类型的图像(如GarageImage或CourtyardImage),则将来无法扩展。

public void uploadRentalImage(Long rentalId, MultipartFile file) {
     String imageId = UUID.randomUUID().toString(); // BedroomPictureId or BathroomPictureId will be created here
     rentalDao.updateBedroomImageId(bedroomImageId, rentalId);
}
public void uploadBathroomImage(Long rentalId, MultipartFile file) {
     String imageId = UUID.randomUUID().toString(); // BedroomPictureId or BathroomPictureId will be created here
     rentalDao.updateBedroomImageId(bedroomImageId, rentalId);
}
woobm2wo

woobm2wo1#

您可以创建一个RentalImage类来存储对图像的引用,并创建ImageCategory枚举来对图像进行分类,例如:

public class RentalImage {
    private Long imageId;
    private String imageName;
    private String imageUrl;
    private ImageCategory category;
}

public enum ImageCategory {
   BEDROOM,
   BATHROOM
}

然后,您可以将RentalImage对象传递给uploadRentalImage方法。现在,此对象具有对图像进行分类所需的所有信息。

相关问题