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