【发布时间】:2015-10-01 20:54:31
【问题描述】:
有一个类,它有两个方法。 (完整源码可以在here找到)
public string SearchAnime(string searchTerm)
{
// returns string
}
public AnimeSearchResponse SearchAnimeDeserialized(string searchTerm)
{
// returns an AnimeSearchResponse type object instance
}
我正在尝试创建上述两种方法的异步版本。
这意味着需要创建像 SearchAnimeAsync 和 SearchAnimeDeserializedAsync 这样的方法。
计划添加更多返回 XML 或 JSON 数据的 SearchAnime* 方法。
随着我添加更多SearchAnime* 方法,由于异步对应方法,方法的数量将增加两倍。
(SearchAnimeXml & SearchAnimeXmlAsync 和 SearchAnimeJson & SearchAnimeJsonAsync)
情况变得更糟,因为该类还包含 SearchManga 和 SearchMangaDeserialized,我将为它们创建异步版本。
是否有任何解决方案或设计模式可以缓解方法的爆炸式增长?
【问题讨论】:
-
由于我们不知道这些方法实际上做什么,我们无法将它们融入任何模式,这使得这个问题过于宽泛。
-
我希望大多数服务框架将提供“神奇”的序列化解决方案(即 WebAPI)......同时考虑通过没有同步版本来简化您的生活。这将为您提供一种方法:)
-
@Alexei 这真的取决于谁将调用该代码。有时
async在不可能的情况下带来的麻烦多于做好事。 -
你可以合并
SearchAnime和SearchManga。例如将签名更改为public string Search(string searchTerm, SearchType enum)并在方法中使用条件。 -
我知道的关于如何减少类中方法数量的最好方法是增加类的数量:)。例如,请参阅@Kapol 的答案。
标签: c# .net methods code-organization