2016-12-21 34 views
0

在我的代碼中我有4個方法,所有的方法都調用單一方法。爲了避免重複的方法調用,我創建了一個全局變量並將方法結果存儲在該變量中。我被告知這不是一個好主意。我們有其他的選擇嗎?通過創建全局變量來減少方法調用

public void initializePortletData(PortletRequest request, PortletResponse portletResponse, Model model) { 
     model.addAttribute(TABLE, test(request)); 
    } 

    public void getInvitedUsers(PortletRequest request, PortletResponse response, Model model) { 
     model.addAttribute(TABLE, test(request)); 
    } 

    @Override 
    public Map getJSParams(PortletRequest request, ModelAndView modelAndView) { 
     Map<String, Object> model = new HashMap<>(); 

      model.put(TABLE, test(request)); 

     return model; 
    } 

回答

0

根據具體情況,也許你可以讓該方法在返回之前設置一些類變量。下一次該方法被調用返回這個值,而不是再次計算它。

+0

我這樣做了,但我被告知它會導致併發問題 –

+0

如果變量是從多個線程訪問並且未處理併發,則保存變量中的任何信息都可能會導致併發問題。您可以保持原樣,或以某種方式解決併發問題。看看Java中的synchonize方法。 – Bear

相關問題