你会如何建筑师这个解决方案,你有不同类型的搜索,如网页,图像等,所以在效果器的输入是相同的,但结果不同根据搜索类型选择的是
我能想到的战略,策略厂来处理输入和选择不同的搜索算法,但如何处理返回类型?
提前致谢
你会如何建筑师这个解决方案,你有不同类型的搜索,如网页,图像等,所以在效果器的输入是相同的,但结果不同根据搜索类型选择的是
我能想到的战略,策略厂来处理输入和选择不同的搜索算法,但如何处理返回类型?
提前致谢
您可以有一个BaseSearchResult
一种类的或有结果interfaced
,让不同类型的搜索类别可以返回相同类型的结果。
编辑:你也可以去使用泛型,是这样的:
class SearchByType1<T>
{
public T ExecuteSearch()
{
}
}
通过基类我的意思是,如果你可以有各种搜索结果中的一些常见的和必要的属性,你可以创建一个基类,并通过执行搜索,与接口类似的想法返回。
搜索结果可能返回2个属性:
例:
using System;
public enum SearchResultType
{
WebPage = 1,
Image = 2,
Video = 3,
Tweet = 4
}
public class SearchResult
{
public SearchResultType SearchResultType { get; set; }
public Object Payload { get; set; }
public SearchResult()
{
}
}
有效负载类型可以是一个对象,或BaseSearchResultPayload抽象类从中WebPageSearchResultPayload和ImageSearchResultPayload将继承。 你也可以使用泛型的或动态的,如果适合您的需求,这取决于你的应用程序的细节和背景。