2010-10-10 41 views
1

我正在開發一個使用Google Translate API的Java移動應用程序(BlackBerry)。我已經設置好了,以便用戶可以在登錄之前指定一種語言,然後一旦他們登錄,我就會圍繞顯示的每一段文本進行包裝,以便根據所選語言翻譯文本。用於更新多個字段的回調方法的最佳實施

我的問題是,多個東西需要在給定的屏幕上翻譯。因此,我必須每個屏幕多次訪問Google Translate API。爲此,我在一個新線程上打開一個HTTPConnection。所以我將我的Screen Interface傳遞給Translator類,然後Translator類將調用我的屏幕回調方法(requestSucceeded()或requestFailed())。

現在,讓我說我翻譯屏幕標題和屏幕正文文本。這是兩個獨立的HTTPConnections。所以當標題翻譯時,我想讓我的requestSucceeded()方法在我的標題LabelField上設置文本。當正文文本被翻譯時,我想讓我的requestSucceeded()方法在我的身體LabelField上設置文本。

讓我的requestSucceeded()方法區分要更新的不同字段的最佳方法是什麼?目前,我向譯者傳遞了兩件事(通過String []數組):要翻譯的文本和描述被翻譯項目的「cookie」。然後,在我的requestSucceeded()回調方法中,使用if語句根據「cookie」(翻譯器將與翻譯後的文本一起發回)更新相應的字段。

我覺得必須有更好的方法來做到這一切。有沒有人有什麼建議?

謝謝!

+0

您的方法聽起來很合理。不要試圖太聰明。使用最簡單的解決方案。 – 2010-10-10 21:34:40

回答

0

首先,我建議你閱讀Command Pattern。它基本上是一種設計方法,可用於將每個翻譯請求封裝在知道如何處理結果的對象中。然後我建議有一個可以插入這些命令的集合,並且您的翻譯線程可以從中獲取輸入。這樣,您可以(取決於API的工作方式)在同一個HTTP連接上處理一批翻譯請求。

+0

我會看看設計模式,謝謝! – littleK 2010-10-12 15:33:53

相關問題