C# 写这样的代码有没有反模式的名字?

C# 写这样的代码有没有反模式的名字?,c#,design-patterns,anti-patterns,parameter-object,C#,Design Patterns,Anti Patterns,Parameter Object,下面是一些使用参数类来包含Show()方法的可能参数的代码。这个fooption类中的值不是很相关。您可以通过查看下面的Show()的实现来了解这一点。我知道这是一个糟糕的代码,但是否有任何反模式与此相关 class FooOptions { public int? Id { get; set; } public string BazContext { get; set; } public int? BazId { get; set; } } class BarMgr { pu

下面是一些使用参数类来包含
Show()
方法的可能参数的代码。这个
fooption
类中的值不是很相关。您可以通过查看下面的
Show()
的实现来了解这一点。我知道这是一个糟糕的代码,但是否有任何反模式与此相关

class FooOptions {
  public int? Id { get; set; }
  public string BazContext { get; set; }
  public int? BazId { get; set; }
}

class BarMgr {
  public Bar Show(FooOptions options) {
    if (options == null)
      options = new FooOptions();
    if (options.Id.HasValue)
      return svc.GetBar(options.Id.Value);
    if (!string.IsNullOrEmpty(options.BazContext) && options.BazId.HasValue)
      return svc.GetBar(options.BazContext, options.BazId.Value);
    return null;
  }
}
更新:
我知道参数对象不是反模式。根据我的经验,参数对象属性是相关的。这是我试图找到的可能的反模式。设置这三个属性没有任何意义。

它被称为参数对象模式,并且不被视为反模式——这是处理可能有太多参数的方法的好方法。

它被称为参数对象模式,而且它也不被认为是反模式——这是处理可能有太多参数的方法的好方法。

更新后,我的答案是:
据我所知,像这样的反模式没有真正的名字,但这种方法至少违反了一个原则:
这个


这确实是方法的问题,而不是参数对象的问题。

更新后,这里是我的答案:
据我所知,像这样的反模式没有真正的名字,但这种方法至少违反了一个原则:
这个


这实际上是方法的问题,而不是参数对象的问题。

如果您经常使用选项,可能会出现反模式。我们有一种称为功能嫉妒的东西,这表明您可能希望将功能移到实际使用的功能中。

如果您使用选项我们有很多功能嫉妒,这表明您可能希望将功能转移到实际使用的功能中。

使用参数类并不是一种反模式。谢谢,我已经意识到了这一点。我已经更新了我的问题,以减少这方面的混淆。使用参数类不是反模式的。谢谢,我已经意识到了这一点。我已经更新了我的问题,以减少这方面的混淆。我问的是参数对象中彼此没有关系的属性。我问的是参数对象中彼此没有关系的属性。