2
我需要C#中有關設計問題(存儲庫設計模式)的幫助。我有一個包含幾種「產品」的系統。每個產品都有「搜索」功能。我想設計一個可重用/通用的搜索界面。根據搜索的產品,搜索標準將與返回的數據不同。存儲庫模式問題和泛型?
搜索功能只會搜索特定的產品類型。目前搜索是唯一的功能,但在將來可能會有其他功能,如「GetByID」,也會根據類型表現不同。
我最初的想法是創建一個「產品」接口「DoSearch:功能
public interface IProduct
{
[return type?] DoSearch([paramters?]);
...
}
public class Product1 : IProduct
{
[product1 result] DoSearch([parameters?])
{
//Do searching logic
return [product1 result]
}
}
那麼我將有一個‘商’級
public class ProductBusiness
{
IProduct _product;
public ProductBusiness(IProduct product)
{
_product = product
}
public [return type?] DoSearch([parameters])
{
return _product.DoSearch([paramters]);
}
}
我的問題是,如何做使業務類別中的[參數]和[返回類型]爲「通用」,因爲根據產品類型,參數和返回類型會有所不同?
客戶端代碼我們這將看起來像這樣:
ProductBusiness productBusiness = new ProductBusiness(new Product1());
[product1 result] = productBusiness.DoSearch[parameters]);
...process result code
如果您可以添加一個示例,說明調用存儲庫的樣子會是什麼樣子,只是爲了完成示例... – Fenton 2011-02-28 14:49:16