我有一种逻辑,需要根据类型执行一次或多次(循环)。战略模式在这里有意义吗?在本质上:
if (type == 1)
{
ProcessReport("");
}
else if (type == 2)
{
for (int i = 0; i < numUsers; i++)
{
ProcessReport(userId);
}
}
public void ProcessReport(string id)
{
if (id == "")
{
//Send full report
}
else
{
GetReportFragment();
//Send report
}
}
最佳答案
通常,策略模式定义一系列算法,封装每个算法,并使它们可互换。策略使算法独立于使用该算法的客户端而变化。
我看不到任何值得为其添加另一层抽象的复杂算法
如果要封装ProcessReport行为,我将创建一个代表该行为的接口,以便可以在循环中调用IProcessReport.Process(userId)