我有下面的场景,其中服务层调用在DistributionPrompt
中返回MentoringPathPrompt
,BossLetterPrompt
,CertificatePrompt
和object[]
类型的对象。我已经设法将这个检查本地化为单个函数,但我觉得这不是一个优雅的解决方案,但我不太确定我可以应用哪种设计模式,这对于这种情况是理想的。
有人能让我知道我可以用于这种情况的设计模式名称吗?我不需要最终解决方案,因为我想自己解决这个问题,但只是名称就足够了,因为我不知道设计模式和我应该知道的。另外,如果引入了另一种Prompt
类型,请解释这种设计模式与现有功能相比如何更有用?
private static PromptVisibility ParsePrompts(IEnumerable prompts)
{
var promptVisibility = new PromptVisibility();
foreach (var t in prompts)
{
if (t is DistributionPrompt)
{
promptVisibility.IsDistributionPromptVisible = true;
promptVisibility.DistributionNumber = ((DistributionPrompt)t).DistributionNumber;
}
if (t is MentoringPathPrompt)
{
promptVisibility.IsMentoringPathPromptVisible = true;
}
if (t is BossLetterPrompt)
{
promptVisibility.IsBossLetterPromptVisible = true;
promptVisibility.EmployerAddress = ((BossLetterPrompt)t).ExistingEmployerAddress;
}
if (t is CertificatePrompt)
{
promptVisibility.IsCertificationPromptVisible = true;
}
}
return promptVisibility;
}