[英]Appropriate design for multiple objects that return similar data
我正在處理以下情況:
視圖有幾個選項卡。 每個選項卡由一個單獨的類表示,並包含一個數據網格。
每個選項卡都可以返回用戶選擇的項目集。 這些項目非常相似,但是每個項目都有一個或兩個特定於它的附加屬性。
View Presenter有一個名為SendItems的方法,該方法應從當前活動選項卡中獲取項目並調用適當的后端服務方法(每個不同的項目集合一個方法)。
這里合適的設計是什么? 到目前為止,我已經想到了兩種方法:
由於Items非常相似,因此從理論上講,我可以將所有屬性分組到1 Item類中,然后可以通過使用名為GetItems()的方法將整個內容抽象出來,該方法將返回集合。 然后,我可以在選項卡類型上使用委托字典來調用正確的后端方法。
我可以讓所有標簽都來自基本標簽,將標簽列表存儲在Presenter中並按住Current標簽。 在SendItems上,設置幾個條件(每種類型一個(如果CurrentTab is
TabA => MethodA()等)。)然后向下轉換以檢索正確的數據。 最后,調用適當的后端方法。
我認為這兩種解決方案都沒有吸引力(將單獨的屬性分組為一個類/向下轉換),並希望有一種解決此類問題的標准方法。
我相信在您的情況下,我主要會選擇選項2。
這與上面的第二個選項非常接近,除了利用更多的多態性魔術並避免在SendItems中使用條件-如果您具有這樣的條件,只需將邏輯卸載到子類中即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.