2009-10-05 248 views
0

我有什麼?設計問題

我有如下要求:

  • 搜索數據庫,並返回TreeNode對象建立一個樹視圖
  • 搜索數據庫,並返回一個泛型列表構造圖。
  • 擴展應該在那裏做搜索和返回不同類型的對象
  • 數據庫是巨大的,性能應該以高優先級被認爲是

我會面臨什麼問題?

我想爲問題做一個類設計。這裏,搜索方法是相同的,只有返回類型不同。我很困惑這裏使用哪種設計模式。

有人可以幫我嗎?

在此先感謝!

更新-1

在搜索邏輯將是相同的,並且API提供該目的。 API將接受搜索參數並將結果作爲DataReader(在C#中)返回。使用閱讀器,我需要構建TreeNode,通用列表或將來可能出現的任何其他對象。

我需要設計一個位於業務層的組件來服務表示層。根據用戶的選擇,搜索結果將以不同的控件顯示。這些控件需要綁定不同類型的對象。

回答

1

我真的不明白這個問題。您的要求清單過於模糊。

什麼是您的數據庫? 你如何訪問它? 那裏有什麼樣的數據? 你在設計什麼樣的程序? 設計的哪個子部分有問題?


更新

好了,所以我認爲你必須設置2種模式。

首先,您需要一種以統一格式從數據庫檢索數據的方法。這應該使用工廠模式使用[摘要] 完成。 工廠只會爲提取的數據提供一個標準容器(您的Reader)。

接下來,你需要一些東西來適應這個統一的數據(即一個適配器)。 這只是一組仿函數結構,可以從標準的統一提取數據(從數據庫)轉換爲特定組件的特定數據。

工廠應該留在業務層,而適配器應該在表示層。

+0

我已經更新了這個問題。 謝謝你的時間。 – Vijay 2009-10-05 08:59:21

+0

好的。讓我試試看。謝謝! – Vijay 2009-10-05 10:55:15

0

那麼,你指定了你想實現的一般功能。但是你沒有提到這個功能的消費者。而使用場景是設計背後的推動力。因此,爲了進行設計,您需要指定場景。例如,在戰略模式背後抽象搜索算法是沒有意義的,除非它將被多元化地使用。

+0

我已經更新了這個問題。謝謝你的時間! – Vijay 2009-10-05 09:02:27

0

我想你需要看看工廠模式。

該接口將從工廠請求樹或列表或X Creator,然後創建者將執行搜索並解釋DataReader以構建所選數據類型。