2017-03-07 32 views
-1

有三個名爲car_details,bike_details,truck_details的表對於所有三個表(RegistrationNo,No.ofYearsOld,OwnerName,ContactNo,VehicleType )車輛類型應指定車輛的類型(汽車或自行車或卡車),其默認值是汽車。在表格之間切換並通過考慮使用策略模式的特定字段來保存數據

所有這三個表都有各自獨立的POJO和倉庫

的任務是我需要考慮vehicleType場的數據保存到相應的表。

在我的控制器

@RequestMapping (value = "/createVehicle/", method = RequestMethod.POST, consumes = "application/json") 
@ResponseBody 
public ResponseEntity<> createGeneralAuthentication (@RequestBody CarDetails carDetails) { 


     public void roleSelector(String type) { 

      switch (type){ 
       case "car": 
        return new CarRepository(); 
       break; 
       case "bike": 
        return new BikeRepository(); 
       break; 
       case "truk": 
        return new TruckRepository(); 
       break; 
      } 
     } 
    RolesRepository rolesRepository = new roleSelector(carDetails.getType()); 

     try { 
      rolesRepository.save(carDetails); 
     } catch (Exception ex) { 
      return new ResponseEntity<>(HttpStatus.NOT_FOUND); 

     } 
      return new ResponseEntity<>(HttpStatus.OK); 
    } 

如果沒有其他應使用它需要一個策略模式。

+0

我更關心在Spring應用程序中使用'new'(很可能它不起作用)。 –

回答

0

實際上它已經是一個策略模式:每個實現的行爲都不同,並且您使用單個接口來抽象其實現細節。這裏roleSelector方法用於創建實例(如工廠)。

+0

但實際上這個代碼不工作,我需要的只是使這個模式可執行 –

+0

它是如何工作的?它給你什麼錯誤/異常?爲什麼你沒有在問題中提到它?我的猜測是你有NullPointerException,因爲使用'new'而不是從Spring注入和使用bean。 –

+0

實際上,存在多個錯誤。我傳遞的對象是carDetails,然後考慮類型,我們必須選擇相應的存儲庫。此外,我們需要更改對象類型以匹配存儲庫。我們怎麼做到這一點。我試圖讓接口存儲庫,但我無法做到。 –

相關問題